首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OJ刷题记录:银行业务队列简单模拟 题目编号:1023

输入描述 输入为一行正整数,其中第1个数字N(<=1000)位顾客总数,后面跟着N位顾客的编号编号奇数的顾客需要到A窗口办理业务,为偶数的顾客则取B窗口。数字间以空格分隔。...输出描述 按业务处理完的顺序输出顾客的编号。数字间以空格分隔,但最后一个编号后不能有多余的空格。...之后遍历这个数组,将单数和偶数分别存到不同的数组中,使用两个计数器分别记录存放单数和偶数的数组的长度。之后循环输出两个单数和一个偶数,每输出一次,对应的计数器减 1 。...直到两个计数器都为 0 ,退出循环。 在循环输出时,因为偶数和单数的输出个数不一样,所以需要使用两个循环变量进行遍历。...[i]; count1++; } else { even[count2] = arr[i]; count2++; } } int i = 0, j = 0; while

86220

剑指offer代码解析——面试题14调整数组顺序使奇数偶数之前

{ /** * 分析:本题只要求前半段为奇数,后半段为偶数,没有要求有序, * 因此可以采用快速排序中一趟排序的思想: * 使用两个指针i、j,i指向头、j指向尾,分别向后、向前扫描;...; return true; } //若数组长度超过2,则进行排序 int i=0,j=a.length-1; while(i<j){ //i从头向后扫描,若当前元素为奇数...while(a[i]%2==1) i++; //j从后向前扫描,若当前元素为偶数,则继续往前扫描,若为奇数,j停止扫描。...* 当数组全为奇数时,i无限向后寻找,因此出现死循环。 * 因此,在i向后、j向前的循环中应多加一个判断:若i搜索到末尾,则停止、若j搜索到开头,则停止。...while(i<a.length-1 && a[i]%2==1) i++; //j从后向前扫描,若当前元素为偶数,则继续往前扫描,若为奇数,j停止扫描。

69450
您找到你想要的搜索结果了吗?
是的
没有找到

PHP数据结构(二十四) ——堆排序

PHP数据结构(二十四)——堆排序 (原创内容,转载请注明来源,谢谢) 一、定义 堆排序也属于一种选择排序,效率较高且空间占用相对较少。...然后根据节点下标,奇数是左节点,偶数是右节点,通过公式【父节点编号=(左节点编号-1)/2,或父节点编号=右节点编号/2-1】,找到其父节点的下标。 并且比较其父节点的值,如果不符合排列顺序,则交互。...3)更新二叉堆,从根节点开始和左右子节点比较,如果有小的值则互换,互换后继续之后的左右字节的进行比较。如果到某一层不需要互换了,则可以退出循环,不用继续往后查看互换问题。...//如果是偶数,说明是右节点,父节点是i/2-1,即父节点比较大小,不对则互换 if(0== $curIndex%2){...PHP数据结构(二十二) ——快速排序 PHP数据结构(二十一) ——希尔排序 PHP数据结构(二十) ——其他插入排序 PHP数据结构(十九) ——B+树 PHP数据结构(十八) ——直接插入排序

1.1K90

浅谈python累加求和+奇偶数求和_break_continue

如下所示: # 计算0到100之间的之间所有的数字累计求和结果 # 定义最终结果的变量 result = 0 # 定义一个整数的变量来记录循环次数 i = 0 # 开始循环 while...i <= 100: print(i) # 每一次循环都让 result 和 i 这个变量相加 # 处理计数器 result += i # result = i + result...奇偶数100内求和 # 计算 0~100之间所有的偶数之和 # 开发步骤 # # 编写循环 确认 要计算的数字 # # 添加结果 变量 在循环内部 计算处理结果 result = 0 i = 0...while i <=100: # 判断 i 的值 是否为偶数 # 偶数 i % 2 ==0 # 奇数 i % 2 !...然后进行循环 在用if进行判断 当 i % 2 == 0 的时候即为偶数,一下步骤同上。奇数的话修改为!=即可。

1.6K10

深入了解Java数组操作及常用算法题

题目1:返回数组中的所有偶数 首先,我们定义一个计数器count,用于统计数组中偶数的个数。通过遍历数组,对每个元素进行取模操作,判断是否为偶数。...如果是偶数,则将其添加到新数组arr_new中,并同时增加计数器count的值。最后,我们得到了一个新数组arr_new,其中包含原始数组中的所有偶数。...(arr_new)); // ...之后的代码 题目2:返回数组中的所有奇数 题目1类似,我们使用一个计数器count2来统计数组中奇数的个数。...通过遍历数组并进行取模操作,判断是否为奇数。如果是奇数,则将其添加到新数组arr_new2中,并同时增加计数器count2的值。...通过使用冒泡排序算法或其他排序算法,可以实现数组的倒序排列。在给定的代码中,使用了冒泡排序算法来完成这个任务。最终,我们得到了一个新数组arr_new10,其中包含了原始数组倒序排列后的结果。

17210

LeetCode-328-奇偶链表

# LeetCode-328-奇偶链表 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。...链表的第一个节点视为奇数节点,第二个节点视为偶数节点,以此类推。...# 解题思路 双指针: 一个指针指向奇数节点,一个指针指向偶数节点 间隔遍历,奇数指针只能指向奇数节点,偶数指针只能指向偶数节点 对于链表长度为奇数时,奇数指针one能够指向之后一个数字,此时偶数指针two...==null,作为循环结束条件 对于链表长度为偶数时,奇数指针one会在之前遍历完毕奇数位置,此时偶数指针two.next==null,作为循环结束条件 最后进行奇偶链表拼接,one.next=tempTwo...ListNode one = head; ListNode two = head.next; ListNode tempTwo = two; while

26610

算法-调整数组顺组使奇数位于偶数前面

题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,偶数位于数组的后半部分。...解题思路: 比如我们有一个这样的数组: 数组的长度为10,最后能够实现前面4个数字是奇数,后面6个数字是偶数就好了,前面奇数排序后后面偶数排序没有要求,比如: 为啥数组里面有两个...由于我们并不知道数组中有几个奇数,有几个偶数,所以我们不得不遍历整个数组,所以这个算法的时间复杂度为O(n^2) 好在我们有更好的方式解决这个问题,管理两个指针p1和p2,p1初始位置指向数组中第一个数...,p2初始位置指向数组中最后一个数,如果恰好p1指向地址内的是偶数,p2指向的地址内是奇数,那么就交换数值,移动指针,做下一次判断。...2.代码判断奇偶数:0x1—00000001,按位操作。 3.循环内if判断的作用:显然两个指针从while退出之后,pBegin指向奇数,pEnd指向偶数,但是到了最后一步,就不能再交换了。

78470

【LeetCode】328. 奇偶链表

给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。...: 1->3->5->2->4->NULL 示例 2: 输入: 2->1->3->5->6->4->7->NULL 输出: 2->3->6->7->1->5->4->NULL 说明: 应当保持奇数节点和偶数节点的相对顺序...链表的第一个节点视为奇数节点,第二个节点视为偶数节点,以此类推。...* evenHead = head->next; ListNode* odd = head; ListNode* even = evenHead; while...奇指针指向的下一个奇数地址 是偶指针的下一个 奇指针后移是下一个 奇数地址 偶指针的下一个是奇指针指向的下一个地址 偶指针后移 循环往复 其他细节 空指针 if (head ==

43120

排序算法的java实现

堆积排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。...堆排序是不稳定的排序方法,辅助空间为O(1), 最坏时间复杂度为O(nlog2n) ,堆排序的堆序的平均性能较接近于最坏性能。...主要是参考了网上比较常见的两种堆排序的java实现,自己加了一些注释 实现1 采用递归,每次父节点最大子节点交换后递归构造被交换后的子树 public static void heapSort...,那么上一层父节点的编号应该为(array.length-1)/2=array.length/2 // 所以如果最末尾节点为左节点,array.length为偶数,那么上一层父节点的编号也为...循环,同样父子节点交换后记录被换过的子节点位置,使用while (2 * k + 1 <= lastIndex)循环判断对应的子树是否符合堆性质并调整 public static void heapSort2

63330

topk问题终极奥义-堆排序

满二叉树a非满二叉树b 什么是完全二叉树 一棵深度为K,有n个节点的二叉树,对树中节点按照从上至下,从左至右的顺序进行编号,如果编号为i(1<=i<=n)满二叉树的编号为i的位置一致,则称此树为完全二叉树...堆排序代码 堆是一个完全二叉树。堆(heap)亦被称为优先队列(priority queue)。...) { big = right; }//确定较大键值的下标 if (i == big) {//如果该节点满足要求,则跳出循环...private void buildHeap(int[] arrays, int length) { //从第一个非叶结点开始调整 //由于堆是完全二叉树,因此如果堆的总节点个数是偶数...,则最后一个叶节点一定是其父节点的左孩子 //如果堆的总结点数是奇数,则非叶节点均包含两个孩子(扯远了) int begin = length / 2 - 1;

29920

脚撕LeetCode(922)Easy

题目地址:https://leetcode-cn.com/problems/sort-array-by-parity-ii/ 给定一个非负整数数组A, A 中一半整数是奇数,一半整数是偶数。...对数组进行排序,以便当A[i] 为奇数时,i也是奇数;当A[i]为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。...,奇数下标的数字是奇数 一、不难想到的爆破法 新建一个数组,然后遍历原数组将奇数放在奇数位,偶数放在偶数位 执行结果如下: 61 / 61 个通过测试用例 状态:通过 执行用时: 3 ms 内存消耗...一开始我最早的想法确实是在原数组上操作,后来发现超时了,当我把爆破法1提交上去之后才想到,超时可能只是我某个循环条件写的不好,而不是对循环此时真的有控制。...(singleIndex < len && doubleIndex < len) { while (doubleIndex < len && (nums[doubleIndex] &

11220

调整数组元素顺序

前言 有一个整数数组,我们想按照特定规则对数组中的元素进行排序,比如:数组中的所有奇数位于数组的前半部分。 本文将带大家实现这个算法,欢迎各位感兴趣的开发者阅读本文。...AdjustArrayOrder { // 指向数组元素的两个指针:一个指向数组头部、一个指向数组尾部 private begin = 0; private end = 0; // 调整数组中奇数偶数元素的位置...< this.end) { // 向后移动begin(转成二进制跟1做运算,运算结果为0就表示为偶数),直至其指向偶数 while (this.begin < this.end...== 0) { this.begin++; } // 向前移动end(转成二进制跟1做运算,运算结果为1就表示为奇数),直至其指向奇数 while...聪明的开发者可能已经想到了方案:双指针的思路还是不变,我们只需修改内层while循环的的判断条件即可。

80610

​LeetCode刷题实战328:奇偶链表

给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。...链表的第一个节点视为奇数节点,第二个节点视为偶数节点,以此类推。...2、接下来,分别以odd开头“删除”偶数链表,以even 开头删除奇数链表。这样一来将整个链表拆分为两个链表。...同时保留了三个节点,分别是odd(奇数链表的最后一个节点),even(偶数链表最后一个节点),evenhead(偶数链表第一个节点)。 3、最后只需将奇偶链表连接起来即可。...循环中,evenhead一直处于无前驱节点状态 while(odd.next!

26130

Verilog实现偶数奇数、半整数、分数(小数)分频,画电路图用D触发器实现分频

N可以为偶数奇数、半整数、分数(小数)。 1.偶数分频 Verilog:N为偶数,使用一个计数器循环0-(N-1)进行计数,在N/2-1N-1分别将输出取反,即完成了N分频。...图1 用D触发器分频 2.奇数分频 Verilog:N为奇数,使用一个计数器循环0-(N-1)进行计数,控制(N-1)/2个高电平,(N+1)/2个低电平,称为A;然后将此A电平信号延迟半个时钟周期称为...图2 奇数分频波形 采用D触发器的话,采用方法1,用一个下降沿的D触发器锁存A=clkp1得到信号B=clkn1,把信号A和信号B做逻辑“”就得到了占空比50%的分频时钟信号clkout[1]。...图3奇数分频 下面给出N为正整数的分频器设计,主要原理是N[0]=1为奇数分频,0为偶数分频。...原理是用计数器循环计数0-10即11个周期,控制输出X前6周期高电平,后5周期低电平,然后再使用计数器得到一个下降沿触发的5低6高的输出Y,最后输出Z = X&Y。 ?

2.9K10

蛇梯棋、、

路径搜索有两种方法:深度优先广度优先。由于这道题要找到的是到达终点时的最短路径,因此 用广度优先搜索更方便些。...r; 最后,列的排列是蛇形的:原本我们每一列的排序都是从左到右的,因此计算出来的 c 是哪一列就是哪一列;但是现在我们从最后一行到首行的元素排列顺序是交替的:最后一行从左到右,倒数第二行从右到左,......r 行的编号变成 n-1-r'),那么偶数行是从左到右,c' = 0+c【从首列0往右数c个位置】;奇数行是从右到左 c' = n-1-c【从最后一列n-1往左数c个位置】。...通过数学计算,我们可以得到实际的列 c' 行 r 的关系 偶数行 (n-1-r)& 1 = 0 奇数行 (n-1-r) & 1 = 1 记 x = (n-1-r)& 1 当 x = 0, 偶数行...        vector> visited(n, vector(n));   // 用于BFS过程中标记方格是否搜索过         // BFS         while

8610

❤️JavaScript系列6部曲:流程控制(万字长文)❤️

num1=10; var num2=20; if(num1>num2){ console.log(num1); }else{ console.log(num2); }//练习2:判断这个数字是奇数还是偶数...var number=parseInt(prompt("请输入一个数字")); if(number%2==0){ console.log("偶数"); }else{ console.log("奇数...while循环 循环:一件事不停的或者是重复的做 循环要有结束的条件,循环还应该有计数器(记录循环的次数的 while循环 while循环语法: 计数器var 变量=0;while(循环的条件){ 循环体...//判断这个数字是不是奇数,如果是奇数则相加,把结果存放在sum变量中while(i<=100){ if(i%2!...=0){ sum+=i; } i++;//为了不变成死循环}console.log(sum)​求1-100之间所有的奇数的和var i = 1;//计数器var sum = 0;//存储和的

34230

(数据科学学习手札02)PythonR在循环语句条件语句上的异同

循环是任何一种编程语言的基本设置,是进行批量操作的基础,而条件语句是进行分支运算的基础,PythonR有着各自不同的循环语句条件语句语法,也存在着一些相同的地方。...', '1', '2', '3', '4', '5', '6', '7', '8', '9'] *for循环只能对可遍历的对象进行操作 2.while循环 i = 10 while(i>=0):...'),print('奇数')) 偶数 奇数 偶数 奇数 偶数 奇数 偶数 奇数 偶数 奇数 偶数 奇数 偶数 奇数 偶数 奇数 偶数 奇数 偶数 奇数 R 1.for循环 > list = c() >...',quote=FALSE),print('奇数',quote=FALSE))} [1] 奇数 [1] 偶数 [1] 奇数 [1] 偶数 [1] 奇数 [1] 偶数 [1] 奇数 [1] 偶数 [1]...奇数 [1] 偶数

2K80
领券