网易有道2017内推编程题

LAN8720芯片硬件设计避坑指南:从晶振选择到PHY地址配置的5个关键细节 本文深入解析LAN8720以太网PHY芯片硬件设计的五个关键细节,涵盖晶振模式选择、PHY地址配置、复位电路设计、电源滤波与接口布线。重点阐述了REF_CLK Out与REF_CLK In两种时钟模式的配置逻辑与应用场景,提供了避免通信失败与信号完整性问题的实战方案,是嵌入式网络硬件开发的实用避坑指南。 阅读详情

1

洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌,接着放下右手的倒数第二张牌,再放下左手的倒数第二张牌,直到最后放下左手的第一张牌。接着把牌合并起来就可以了。 例如有6张牌,最开始牌的序列是1,2,3,4,5,6。首先分成两组,左手拿着1,2,3;右手拿着4,5,6。在洗牌过程中按顺序放下了6,3,5,2,4,1。把这六张牌再次合成一组牌之后,我们按照从上往下的顺序看这组牌,就变成了序列1,4,2,5,3,6。 现在给出一个原始牌组,请输出这副牌洗牌k次之后从上往下的序列。

思路:
基本是暴力解了,压栈出栈

#include <iostream>
#include <stack>

using namespace std;

int main() {
    int t;
    cin >> t;
    while (t--) {
        int n, k;
        cin >> n >> k;
        int a[200];
        for (int i = 0; i < 2 * n; ++i) {
            cin >> a[i];
        }
        stack <int> s;
        while (k--) {
            for (int i = 2 * n - 1; i >= n; --i) {
                s.push(a[i]);
                s.push(a[i - n]);
            }
            for (int i = 0; i < 2 * n; ++i) {
                a[i] = s.top();
                s.pop();
            }
        }
        cout << a[0];
        for (int i = 1; i < 2 * n; ++i)
            cout << " " << a[i];
        cout << endl;    
    }
    //system("pause");
}

2

小明同学把1到n这n个数字按照一定的顺序放入了一个队列Q中。现在他对队列Q执行了如下程序:

while(!Q.empty())              //队列不空,执行循环

{

    int x=Q.front();            //取出当前队头的值x

    Q.pop();                 //弹出当前队头

    Q.push(x);               //把x放入队尾

    x = Q.front();              //取出这时候队头的值

    printf("%d\n",x);          //输出x

    Q.pop();                 //弹出这时候的队头

}

做取出队头的值操作的时候,并不弹出当前队头。
小明同学发现,这段程序恰好按顺序输出了1,2,3,…,n。现在小明想让你构造出原始的队列,你能做到吗?

思路:
将顺序序列处理得出结果
比如1 2 3 4 5,先将5插入到3、4之间(隔1),得到1 2 3 5 4,再将4插入到2、3之间(隔2),得到1 2 4 3 5,再将5插入
到1、2之间(隔3),得到1 5 2 4 3,最后将3插入到1前面(隔4),得到最终结果:3 1 5 2 4
从上面例子可看出,不断的将最后一个元素插入到前面,规律为相隔元素个数依次递增,上面是从1到4

代码:

#include<iostream>
#include<vector>
using namespace std;

int main() {
    int t;
    while (cin >> t) {
        while (t) {
            int n;
            cin >> n;
            vector<int> vec;
            for (int i = 1; i <= n; i++) {
                vec.push_back(i);
            }
            for (int i = 1; i < n; i++) {
                int tmp = *(vec.end() - 1);
                vec.insert(vec.end() - i - 1, tmp);
                vec.pop_back();
            }
            bool flag = true;
            for (int i : vec) {
                if (flag) {
                    flag = false;
                    cout << i;
                }
                else
                    cout << " " << i;
            }
            cout << endl;
            t--;
        }
    }
}

也可以用deque

#include <iostream>
#include <deque>
using namespace std;

int main()
{
    int n, k;
    cin >> k;
    while (k > 0)
    {
        deque<int> q;
        k--;
        cin >> n;
        for (int i = n; i > 0; i--)
        {
            q.push_front(i);
            int t = q.back();
            q.pop_back();
            q.push_front(t);
        }
        for (int i = 0; i < q.size(); i++)
            cout << q[i] << " ";
        cout << endl;
    }
}
DDS器件原理与应用(AD9833 AD9834) 是DDS的核心组成部分,用于实现相位的累加,并输出相应的幅值。相位累加器由M位宽加法器和M位宽寄存器组成,通过时钟控制,将上一次累加结果反馈到加法器输入端实现累加功能,从而使每个时钟周期内的相位递增数为,并取相位累加结果作为地址输出给ROM查找表部分。DDS的相位信息被存放在累加寄存器中,虽然幅值和相位不是线性关系,但寄存器累加值和相位可以是线性关系,很容易用寄存器的累加值表达相位信息。 阅读详情

相关推荐

MPU6050 加速度计和陀螺仪传感器与 Arduino 的接口

虽然该模型并不能准确代表现实世界中加速度计传感器的构建方式,但它通常有助于理解为什么加速度计的输出信号通常以 ±g 为单位指定,或者为什么加速度计在静止时在 z 轴上的读数为 1g,或者在不同方向上您可以期望得到什么样的加速度计读数。该模块的核心是低功耗、低成本的 6 轴运动跟踪芯片 MPU6050,它将 3 轴陀螺仪、3 轴加速度计和数字运动处理器 (DMP) 集成到一个 4mm x 4mm 的微型芯片中。小时候,科学博览会上的陀螺仪总是让我们感到惊讶,因为它们以奇怪的方式移动,甚至似乎违背了重力。

sxstj的博客 9932

网易有道2017内推编程题Python解法与经典题型复盘

在线笔试是技术校招与内推环节的核心筛选方式,其本质是通过有限时间内的高频基础题,考察候选人的编码基本功与问题拆解能力。字符串处理、数组操作、边界条件控制以及时间复杂度意识,是这类题目反复出现的底层考点,也是Python编程学习中最值得投入精力的基础模块。从经典的字符串循环移位包含问题,到数组去重排序、字符计数、括号匹配与最大子数组和,这些题目看似简单,却精准覆盖了日常工程开发中高频使用的逻辑判断、循环遍历与数据结构运用。无论是准备互联网公司内推笔试,还是备考Python一级编程等级考试,掌握这类题型的通用解

weixin_33796205的博客 501

Openharmony 命令行工具hdc的获取与安装

OpenHarmony实战:命令行工具hdc安装应用指南_hdc工具-优快云博客t=N7T8。

Devlin_的博客 1万+

1555: 【基础】洗牌

首次洗牌时,会将牌分成 1, 2, 3 和 4, 5, 6 两堆,交叉插入后的结果为 1, 4, 2, 5, 3, 6。小明把 n (n 为偶数)张牌按编号顺序 1, 2, 3, ..., n 排成一堆,然后开始洗牌。再次洗牌,会将牌分成 1, 4, 2 和 5, 3, 6 两堆。交叉插入后得到 1, 5, 4, 3, 2, 6。a1, a2, ..., am和am+1, am+2, ..., an (其中m=n/2)例如 n = 6,初始时牌堆中牌的编号为 1, 2, 3, 4, 5, 6。

为cxm学生助力 1170

YOLOv8改进 | Conv篇 | DWRSeg扩张式残差助力小目标检测 (附修改后的C2f+Bottleneck)

本文内容给大家带来的DWRSeg中的DWR模块来改进YOLOv8中的C2f和Bottleneck模块,主要针对的是小目标检测,主要创新点可以总结如下:多尺度特征提取机制的深入研究和创新的DWR模块和SIR模块的提出这种方法使得网络能够更灵活地适应不同尺度的特征,从而更准确地识别和分割图像中的物体。通过本文你能够了解到DWRSeg的基本原理和框架,并且能够在你自己的网络结构中进行添加(DWRSeg需要增加一定的计算量一个DWR模块大概增加0.4GFLOPs)。

Snu77的博客 9571

Android Audio音量——音频类型新增(九)

在实际开发中,经常会遇到需要新增一个音频类型(usage)的需求,这里我们简单介绍一下需要修改的代码。

小旭的专栏 1570

2016年江苏省信息与未来小学生程序设计比赛试题--洗牌

这是我第一次用模板,若有不妥之处请指出。

ceshyong的博客 1404

ABAP面试题系列:写一组会出现死锁(Deadlock)的ABAP程序

我们在计算机操作系统这门专业课上,学过死锁(Deadlock)的概念:两个或两个以上的进程(或线程)在执行过程中,由于竞争资源而造成的一种阻塞的现象,称为死锁。若无外力干预,这些处于死锁状态的进程将永远处于互相等待的阻塞状态中。 正好我儿子走到我电脑前看到文章标题,好奇地问我什么是死锁。我解释道,“假设你和白妹妹(他的玩伴)手上都有一张奥特曼白金卡,你特别想要白妹妹手上那张白金卡,白妹妹也特别想...

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1474

《洗牌》 题解

正整数 n (牌的数量), k (洗牌的次数), i (牌的位置)。1 ≤ n, k ≤ 1,000,1 ≤ i ≤ n, 保证 n 是偶数。小明把 n (n 为偶数)张牌按编号顺序 1, 2, 3, …, n 排成一堆,然后开始洗牌。这题没有理解难度,只有代码难度;用一个数组模拟整个洗牌过程,基本上就搞定了;n 张牌洗牌 k 次后,牌堆中第 i 张牌的编号。2016江苏省青少年信息学奥林匹克竞赛复赛。其实,在那时候我也是被这题所困扰住了^_^

专门发一些c++题解 659

华为OD机试真题 新系统2026-04-15 Python&JS 实现【失灵的键盘】

有一个键盘有2个按键失灵了,按下这些键时会连续输出其他键对应的字符两次。具体如下: 1. 按下j键一次,屏幕上显示uu(两个连续的u);  按下b键一次,屏幕上显示t(两个连续的t) 2. u键和t键是好的,按下u键一次时,屏幕只会显示一次u(正常按键);按下t键一次时,屏幕只会显示一次t(正常按键) 3. 假定屏幕上连续显示两个t一定是按了一次b键,而不是两次t键;假定按键t之后不会紧接着按键b,即tttt转义为两个b,而不可能是tb

MISAYAONE的博客 522

华为od 面试八股文_测试/测试开发_01_含答案

华为od面试八股文_测试/测试开发_01_含答案

MISAYAONE的博客 3814

网易笔试:构造队列

网易笔试:构造队列 题目描述 小明同学把1到n这n个数字按照一定的顺序放入了一个队列Q中。现在他对队列Q执行了如下程序: while(!Q.empty()) //队列不空,执行循环 {   int x = q.front(); //取出当前队头的值x   q.pop();

两鬓已不能斑白的专栏 649

嵌入式面经篇八——进程&线程

记录一些招聘公司在招聘嵌入式软件岗位时的一些问题,此文为第八篇。进程上文:是指进程由用户态切换到内核态时需要保存用户态时CPU寄存器中的值,进程状态以及堆栈上的内容。即保存当前进程的状态,以便再次执行该进程时,能够恢复切换时的状态,继续执行。进程下文:是指切换到内核态后执行的程序,即进程运行在内核空间的部分。中断上文:硬件通过中断触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和参数也要传递给内核,内核通过这些参数进行中断处理。

明天你好的博客 1854

网易有道2017内推编程题第一题

以下是网易有道2017年内推编程题第一题题目及本人的解题过程,在这里和大家做个分享。1、 题目 2、 输入输出 3、 我的解题思路 首先将牌堆存放在大小为2n的数组中,然后将牌堆分成两个大小为n的上下两个牌堆,最后将上下两个牌堆交替放下组成新的大小为2n的牌堆。4、 我的实现 import java.util.Scanner;public class Main { public sta

一亩三分地 873

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

有道python网课怎么样-网易有道2017内推编程题 洗牌(python)

本文实例为大家分享了网易有道2017内推编程题:洗牌,供大家参考,具体内容如下'''[编程题] 洗牌时间限制:1秒空间限制:32768K洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下...

weixin_37988176的博客 463

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

网易有道2017内推编程题2道

网易有道2017内推编程题2道   前言 其实本文的目的不全是这俩道题的解法上,而是加深对Node的基础模块readline的使用,先上题 1.洗牌 题目: 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就...

weixin_34378922的博客 108

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

网易有道2017内推编程题拆解:模拟、动规与字符串处理

算法笔试中,动态规划与字符串处理是核心考察点,其原理建立在状态转移和边界控制之上。理解这些基础概念,能帮助开发者从模糊需求中抽象出数据结构,提升代码的严谨性。无论是处理01背包问题、最长不重复子串,还是模拟题中的溢出判断,都是在训练工程化的思维。在网易有道2017内推编程题中,这些知识点被融入真实业务场景,成为检验编码能力和时间分配能力的试金石。通过拆解典型真题,可以掌握一套可复用的解题方法,为校招、内推或日常开发打下坚实基础。

weixin_34034261的博客 337

【牛客网】网易有道2017内推编程题

一、[编程题] 洗牌 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌,接着放下右手的倒数第二张牌,再放下左手的倒数第二张牌,直到最后放下左手

小拳头的博客 800

网易有道2017内推编程题-网易[编程题]构造队列

小明同学把1到n这n个数字按照一定的顺序放入了一个队列Q中。现在他对队列Q执行了如下程序: while(!Q.empty()) //队列不空,执行循环 { int x=Q.front(); //取出当前队头的值x Q.pop(); //弹出当前队头 Q.push(x);

qq_34864421的博客 571

网易有道2017内推编程题1

题目描述: 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n + 1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌,接着放下右手的倒数第二张牌,再放下左手的倒数第二张牌,直到最后放下左手的第一...

weixin_34220179的博客 119

网易有道2017内推编程题_01 洗牌

[编程题] 洗牌 时间限制:1秒 空间限制:32768K 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌,接着放下右手的倒数第二张牌,再...

ajkksald的博客 199

网易有道2017内推编程题:洗牌 [python]

''' [编程题] 洗牌 时间限制:1秒 空间限制:32768K 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌, 从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆, 左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。 接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌, 接着

ChrisMinions小站 1182

网易有道2017内推编程题2

题目描述: 小明同学把1到n这n个数字按照一定的顺序放入了一个队列Q中。现在他对队列Q执行了如下程序:while (!Q.empty()) //队列不空,执行循环 { int x = Q.front(); //取出当前队头的值x Q.pop(); //弹出当前队头 Q.push(x); ...

weixin_34051201的博客 120
上一篇: [LeetCode]543. Diameter of Binary Tree
下一篇: [LeetCode]303. Range Sum Query - Immutable
charon____
博客等级 码龄11年 3粉丝 202原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值