摘要:
假设把某股票的价格按时间顺序·存储在数组里,请问买卖股票一次可能获得的最大利润是多少 方法:遍历到某个时间点i时候,寻找i前面的最小值,他们的差就是利润;遍历一遍i即可得出; int MAXDiff(int[] number){ if(number==null&&number.length<2) r 阅读全文
posted @ 2020-03-29 17:05
浪波激泥
阅读(276)
评论(0)
推荐(0)
摘要:
在0-n-1这n个数中,每次从这个圈中删除第m个数字; 经典解法:链表;将模拟出环形链表结构后进行后进行相关的删除工作;直到只剩一个;也就是常规暴力解法; 创新解法:数学推导; n>1时 f(n.m)=[f(n-1),m+m ] %n n=1时候 f(n.m)==0; int f1(int n,in 阅读全文
posted @ 2020-03-29 17:04
浪波激泥
阅读(212)
评论(0)
推荐(0)
摘要:
从从牌中随便抽取5张牌,判断是不是连续的,大小王可以看成任意牌 方法:把大小王用0表示;先排序;判断大小王的个数;判断出了大小王,其他数之间的间隔,间隔1为有序,间隔0则有重复,直接返回false;最后比较大小王的个数与距离 阅读全文
posted @ 2020-03-29 17:02
浪波激泥
阅读(194)
评论(0)
推荐(0)
摘要:
把n个骰子扔在地上,求出现和为s的概率 可得n<=s<=6n 方法:定义6n-n+1长度的数组,然后对所有可能出现的组合进行计算,把结果进行计数存进数组;递归 方法二:动态规划,大问题小化:考虑使用两个数组存储点子的总数之和出现的次数,每增一个骰子,是前几个数组值的和,因为6个面,所以前n的前6的和 阅读全文
posted @ 2020-03-29 17:01
浪波激泥
阅读(205)
评论(0)
推荐(0)
摘要:
题目一:队列的最大值:给定一个数组和滑动窗口大小,请查找出所有滑动窗口的最大值 方法:设置两端开口队列存储窗口最大值的下标;每个队头是这个窗口当前最大值; 窗口滑动时;新元素进队,把队里比它小的就删掉 名称 deque 是“double ended queue(双端队列)”的缩写 ArrayList 阅读全文
posted @ 2020-03-29 17:00
浪波激泥
阅读(237)
评论(0)
推荐(0)
摘要:
题目一:翻转单词顺序 方法一:首先总体全部翻转,接着再把各个单词再翻转 i am a surper man. .nam reprus ma i man. surper am i static char [] reverse(char[]a,int be,int end) { while(be<end 阅读全文
posted @ 2020-03-29 16:59
浪波激泥
阅读(237)
评论(0)
推荐(0)
摘要:
题目一:和为s的数字,在一个递增数组中寻找两个数字的和等于s 方法:双指针法,一个在头一个在尾;如果两个指针指向的和小于,那么be++;大于end--; 题目二:打印所有和为s的连续正数序列 方法:双指针法,有点像贪婪算法,一个在1一个在2;如果两个指针内所有数的和小于s,那么end++;大于be+ 阅读全文
posted @ 2020-03-29 16:56
浪波激泥
阅读(202)
评论(0)
推荐(0)
摘要:
题目一:数组中只出现一次的两个数字 :除了两个数字只出现过一次,其他都出现两次;要求时间复杂度n 空间复杂度1 方法:由于其他出现两次,所以异或的结果是两个只出现过一次数字的异或结果,结果肯定不为0;那么结果用二进制表示中的第一个‘1’的位置,对数组进行分类,该位置为1的和0的,分为两个数组,此时 阅读全文
posted @ 2020-03-29 16:55
浪波激泥
阅读(296)
评论(0)
推荐(0)
摘要:
从根节点到叶子点的最长路径上的结点数为深度 方法:根据树的特性,比较左右子树,选那个长的加1;大问题小化递归计算 int TreeDepth(BinaryTreeNode pNode){ //边界,叶子的下一个返回0 if(pNode==null ) return 0; int L= TreeDep 阅读全文
posted @ 2020-03-29 16:53
浪波激泥
阅读(165)
评论(0)
推荐(0)
摘要:
方法:搜索二叉树的特点就是左树小于节点,节点小于右树,所以采用中序遍历法就可以得到排序序列 BinaryTreeNode KthNode(BinaryTreeNode pNode ,int k){ if( pNode ==null||k==0) return null; return KthNode 阅读全文
posted @ 2020-03-29 16:51
浪波激泥
阅读(207)
评论(0)
推荐(0)
摘要:
题目一:数字在排序数组中出现的次数 方法一:使用二分查找找到这个数字,然后在左右展开统计 方法二:分别用二分查找寻找第一个k和最后一个K,再相减 static int findk(int a[],int k) { if(a==null||a.length<1) return 0; int be=0; 阅读全文
posted @ 2020-03-29 16:50
浪波激泥
阅读(277)
评论(0)
推荐(0)
摘要:
方法一:暴力,遍历A链表每一个节点的过程中,对B链表进行检查 O(AB) 方法二:因为题目中链表是单向的,所以在第一个重合点后,其他都相等,就是Y型的。所以他们尾节点是相同的,因此就重后面开始,符合“先进后出的特点”,我们可以定义两个栈,然后链表进栈,在进行出栈比较; 方法三:先获取两个链表的长度, 阅读全文
posted @ 2020-03-29 16:47
浪波激泥
阅读(227)
评论(0)
推荐(0)
摘要:
在数组中如果前面的数字大于后面的,那么就是逆序对 方法一:使用插入排序,即可统计交换次数就是逆序对的值 方法二:归并排序,需要牺牲空间使得时间复杂度提高一点 public static int InversePairs(int[] data) { if(data == null || data.le 阅读全文
posted @ 2020-03-29 16:46
浪波激泥
阅读(201)
评论(0)
推荐(0)
摘要:
方法:定义256大小的数组,因为字符char是一个8位的数组,有256种可能;遍历一遍,统计每个字符出现的个数;再遍历一遍,查看在辅助数组中的出现次数,第一个为一就输出; 阅读全文
posted @ 2020-03-29 16:45
浪波激泥
阅读(132)
评论(0)
推荐(0)
摘要:
只包含因子2,3,5,的数称为丑数;求小到大的顺序的第1500个丑数,1是第一个丑数 方法一:不牺牲空间进行,遍历增加 bool isUgly(int number){ while(number%2==0) number/=2; while(number%3==0) number/=3; while 阅读全文
posted @ 2020-03-29 16:44
浪波激泥
阅读(252)
评论(0)
推荐(0)
摘要:
int Max_Str(String s){ char [] str=s.toCharArray(); int curlength=0;//子串长度 int maxlength=0; int []B=new int[26]; for(int i=0;i<26;i++) B[i]=-1; for(in 阅读全文
posted @ 2020-03-29 16:42
浪波激泥
阅读(202)
评论(0)
推荐(0)
摘要:
在m*n的棋盘中,每一格放一个礼物,只能向左或下走,求右下角礼物的最大值; 方法一:创建辅助数组,数组中的每一个值表示上面还有左边结果的最大值 int Max_vaule(int array[][]) { if(array==null||array.length<0) return 0; int m 阅读全文
posted @ 2020-03-29 16:41
浪波激泥
阅读(271)
评论(0)
推荐(0)
摘要:
0变a ,1变b,25变z 。即一个字符串可以变成多种形式,请计算一共有多少种 方法一:递归分解 int TranFrom1(int n) { if(n<0) return 0; if(n/10==0) return 1; int k=0; k+=TranFrom1(n/10); if(n%100< 阅读全文
posted @ 2020-03-29 16:40
浪波激泥
阅读(308)
评论(0)
推荐(0)
摘要:
把数组里的所有的数字拼接排成一个最小的数 全排列 阅读全文
posted @ 2020-03-29 16:38
浪波激泥
阅读(195)
评论(0)
推荐(0)
摘要:
数字以“01234567891011121314151617181920……”的格式格式序列化到一个字符序列中,求任意第n位的对应数字 方法一:遍历到n 方法二:寻找数的规律 1-9 1*9个 10-99 2*9*10个 100-999 3*100*9 …… int findnumed(int n) 阅读全文
posted @ 2020-03-29 16:36
浪波激泥
阅读(295)
评论(0)
推荐(0)
摘要:
方法一:直观来看,遍历1到n,每个数去做%10的循环判断 int Number1_B_1toN( int n){ int sum=0; for(int i=1;i<=n;i++){ int k=i; while(k!=0){ if(k%10==1) sum++; k/=10; } } return 阅读全文
posted @ 2020-03-29 16:33
浪波激泥
阅读(315)
评论(0)
推荐(0)
摘要:
方法一:举例分析数组的规律,累加数组逐步保存最大值;累加中和<0,则遗弃前面的累加和;重新开始; 1 int FindMaxArray(int [] A) { 2 if(A==null||A.length<=0) 3 return 0; 4 int sum=0; 5 int max=0x800000 阅读全文
posted @ 2020-03-29 16:30
浪波激泥
阅读(214)
评论(0)
推荐(0)
摘要:
在不断插入的数组中输出中位数 方法:将数组均分为大顶堆和小顶堆,通过插入比较判断堆顶的值 阅读全文
posted @ 2020-03-29 16:26
浪波激泥
阅读(240)
评论(0)
推荐(0)
摘要:
方法一:先排序后寻找前k个数; 方法二:受面试题三十九,寻找超过一半的数的启发,只把里面的middle改成k-1就行; void HalfNum( int [ ] Array ,int k){ int start=0; int end=Array.length-1; int index=Patiti 阅读全文
posted @ 2020-03-29 16:25
浪波激泥
阅读(241)
评论(0)
推荐(0)
摘要:
方法一:类似快速排序的方法将比选择打的数放在右边,选择小的数放在左边,如果下标为n/2,那么该值就是要找的数,如果大于n/2,那么中位数在左边,如果小于,那么在右边。 //目的,寻找数组中间位置该有的值 int MoreThanHalfNUm( int [ ] Array ){ if(Array== 阅读全文
posted @ 2020-03-29 16:23
浪波激泥
阅读(353)
评论(0)
推荐(0)
摘要:
输入一个字符串,打印出所有排列方式,即将字符串进行全排列输出分析:把字符串分成两个部分,第一个固定和其他排列,以此类推大问题小化,无重复排列的问题,类似9*8*7*6*5*4*3*2*1的思想 public static void Permutation( char [] pStr){ if( pS 阅读全文
posted @ 2020-03-29 16:22
浪波激泥
阅读(154)
评论(0)
推荐(0)
摘要:
题目描述请实现两个函数,分别用来序列化和反序列化二叉树思路: 二叉树的序列化就是采用前序遍历二叉树输出节点,再碰到左子节点或者右子节点为None的时候输出一个特殊字符“$”。 对于反序列化,就是针对输入的一个序列构建一棵二叉树,我们可以设置一个指针先指向序列的最开始,然后把指针指向位置的数字转化为二 阅读全文
posted @ 2020-03-29 15:10
浪波激泥
阅读(176)
评论(0)
推荐(0)
摘要:
输入一棵二叉搜索树,将该树转换成一个排序的双向链表,要求不能创建任何新的节点,只能调整树中的指针指向 分析:使用中序遍历每一个节点,根节点和左子树的右子树相连,根节点再和右子树的最左子树相连 BinaryTreeNode Convert( BinaryTreeNode pRootofTree ){ 阅读全文
posted @ 2020-03-29 15:08
浪波激泥
阅读(315)
评论(0)
推荐(0)
摘要:
在复杂链表中,每个节点不止有指向下一个节点的指针,还有一个指向表中任意节点的指针pSibling。 方法: 第一步在每个节点N后面创建节点'N,把N'连接到N的后面 void f1(ListNode pHead){ ListNode pNode =pHead; while( pNode !=null 阅读全文
posted @ 2020-03-29 15:06
浪波激泥
阅读(185)
评论(0)
推荐(0)
摘要:
输入一颗二叉树和一个值,打印出和为该值的所有路径。从树的根节点开始往下直到叶节点所经历过的节点形成的一条路径。 方法:前序遍历法 void FindPath ( BiinaryTreeNode pRoot, int k){ if(pRoot==null) return; List<Integer> 阅读全文
posted @ 2020-03-29 15:03
浪波激泥
阅读(234)
评论(0)
推荐(0)
摘要:
输入一个数组,判断是不是某个二叉寻找树的后序遍历结果,假如数组中任意两个数字都不相同则返回true 二叉树搜索数树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 明确搜索二叉树的定 阅读全文
posted @ 2020-03-29 15:01
浪波激泥
阅读(291)
评论(0)
推荐(0)
摘要:
即按层遍历树,广度优先遍历 要求输出 8,10,6,9,11,5,7方法一:定义一个队列,把出队的节点的左右子树节点进队,如果左右节点为null则不用进队 1 void PrintTree( BinaryTreeNode phead ){ 2 if(phead==nuull) return ; 3 阅读全文
posted @ 2020-03-29 15:00
浪波激泥
阅读(224)
评论(0)
推荐(0)
摘要:
输入两个序列,第一个序列为栈的压入顺序,第二个序列为栈的弹出顺序,设问第二个序列是否是第一个序列的弹出序列。方法:定义一个辅助栈,和两个指针分别指向两个序列的开头,压入序列进栈,栈顶元素与弹出序列指针指向的比较,不一致,继续进栈比较,一致,弹出栈顶元素。 规律:如果下一个弹出的数字刚好是栈顶数字,那 阅读全文
posted @ 2020-03-29 14:57
浪波激泥
阅读(243)
评论(0)
推荐(0)
摘要:
定义一个栈的数据结构,请实现一个每次都能找到栈中的最小元素,要求时间复杂度O(1)。意思就是说每次进栈出栈后,min函数总能在时间1的前提下找到。方法一:由于每次循序遍历栈的话时间复杂度为n,所以要想时间1,就必须牺牲空间换时间, 在原有栈的基础上,再定义一个最小值数据栈和保存现有最小值min变量, 阅读全文
posted @ 2020-03-29 14:54
浪波激泥
阅读(169)
评论(0)
推荐(0)
摘要:
方法一:定义边界:防止溢出或者重复打印 1 public List<Integer> spiralOrder(int[][] matrix) { 2 List<Integer> list=new ArrayList(); 3 if(matrix.length==0) return list; 4 i 阅读全文
posted @ 2020-03-29 14:52
浪波激泥
阅读(258)
评论(0)
推荐(0)
摘要:
判断相对根节点的左右子树是否一样 方法:比较二叉树的前序遍历序列和对称前序遍历序列 比较用左左和右的右比较,左的右和右的左比较 1 boolean f1(BinaryTreeNode pRoot ){ 2 return f2(pRoot, pRoot); 3 } 4 boolean f2(Binar 阅读全文
posted @ 2020-03-29 14:50
浪波激泥
阅读(179)
评论(0)
推荐(0)
摘要:
左右子树颠倒 前序遍历 在遍历过程中将左右节点颠倒后在遍历左右子树 void f1( BinaryTreeNode A){ if( A==null ) return ; if( A.L==null && A.R==null ) return ; //叶子 BinaryTreeNode temp= A 阅读全文
posted @ 2020-03-29 14:49
浪波激泥
阅读(154)
评论(0)
推荐(0)
摘要:
判断B树是否是A树的子结构 遍历A树,寻找和B树根节点一样的节点 找到后,判断是否一样结构 boolean HasSub( BinaryTreeNode A, BinaryTreeNode B ){ boolean reu=false; if(a!=null && B!=null){ if( A.v 阅读全文
posted @ 2020-03-29 14:48
浪波激泥
阅读(186)
评论(0)
推荐(0)
摘要:
两个递增的链表合并 使用递归,、 得出较小值后;剩下又是两个链表 重复动作用递归 1 ListNode f12( LstNode head1,LstNode head2){ 2 if(head1==null ) return head2; 3 if( head1== null ) return he 阅读全文
posted @ 2020-03-29 14:47
浪波激泥
阅读(258)
评论(0)
推荐(0)
摘要:
方法1:三指针法 1,保存节点的下一个值 2.修改节点的下一个值为前节点 3.前节点后移 1 ListNode f1( LstNode head){ 2 ListNode phead=null; 3 4 ListNode pnode=head; 5 ListNode pPre=null; 6 7 w 阅读全文
posted @ 2020-03-29 14:46
浪波激泥
阅读(280)
评论(0)
推荐(0)
摘要:
方法一: 步骤1.确定环存在:指针A一次走一步,指针B一次走两步,如果相遇则出现环。 步骤2。确定环节点的数量:A继续走,b不动,计数k,再次相遇则可得计数结果 步骤3. 寻找入口:指针A从头结点先走k步,然后一起向前,相遇时的节点就是入口 阅读全文
posted @ 2020-03-29 14:44
浪波激泥
阅读(204)
评论(0)
推荐(0)
摘要:
方法一:双指针法定义两个指针A、B,A先走k-1步后再一起走,直到A.next==null注意: 1.链表为空 2.链表长度小于k 3.k<=0 当题目是求链表的中间节点时,可以两个指针从开头开始,一个一次走一步,一个一次走两步,当走的快的指针到达尾部时候,走得慢的指的就是中间 阅读全文
posted @ 2020-03-29 14:43
浪波激泥
阅读(164)
评论(0)
推荐(0)
摘要:
方法一:双指针法,在数组前后定义两个指针,当p1遇见偶数时则调换位置,类似快速排序 void f1( int []array){ if(array.length<=1) return ; int be=0; int end=array.length-1; while( be<end){ while( 阅读全文
posted @ 2020-03-29 14:41
浪波激泥
阅读(228)
评论(0)
推荐(0)
摘要:
1 //整数的格式可以用 A[ .[B]][E|e C]或 .B[E|e C],其中AC都为整数,B是一个无符号整数 2 //扫描字符串时的索引 3 int i=0; 4 public boolean isNumber(String s) { 5 6 if(s==null || s.length() 阅读全文
posted @ 2020-03-29 14:39
浪波激泥
阅读(288)
评论(0)
推荐(0)
摘要:
请实现一个函数用来匹配包含‘ .’ 和‘ * ' 的正则表达式。模式中的字符 ‘ .’ 代表任意一个字符,而‘' *' 表示它前面字符可以出现无数次(包含0) 关键在于*的匹配·有多种可能 static boolean isMatch(String s, String p) { //存在某一为空 i 阅读全文
posted @ 2020-03-29 14:38
浪波激泥
阅读(413)
评论(0)
推荐(0)
摘要:
方法一:将要删除的·节点的下一个节点的内容复制到该节点上,然后删除下一个节点注意特殊情况:链表只有一个节点时,则删除头节点,则把头节点设置为null, 如果删除的尾节点则需要顺序遍历链表,取得前序节点,完成删除 阅读全文
posted @ 2020-03-29 14:37
浪波激泥
阅读(170)
评论(0)
推荐(0)
摘要:
输入数字n,按顺序打印到最大的n位数 注意:没有规定类型,无论int或long 都会有可能溢出。 应当选择其他类型如String 方法一:定义长度与位数相同的字符数组,从0开始进行加一操作打印 public static void f1(int n) { char [] array=new char 阅读全文
posted @ 2020-03-29 14:36
浪波激泥
阅读(236)
评论(0)
推荐(0)
摘要:
注意:考虑指数小于1的·情况:求绝对值的结果后再求倒数 a^n=a^(n/2)*a^(n/2) n为偶数 a^n=a^(n/2)*a^(n/2) *a n为奇数 double power1(double a, int n){ if( n==0) return 0; if( n==1) return 阅读全文
posted @ 2020-03-29 14:33
浪波激泥
阅读(104)
评论(0)
推荐(0)
摘要:
方法一:位运算 整数与1做&运算,整数右移循环。但是遇到负数会出现死循环; 方法二:位运算 整数与1做&运算,1左移循环; int f1(int n){ int count=0; int t=1; while(t!=0){ if(t&n==1) count++; t<<=1; } return co 阅读全文
posted @ 2020-03-29 14:32
浪波激泥
阅读(224)
评论(0)
推荐(0)
摘要:
动态规划特点 求一个问题的最优解 整体问题的最优解依赖各个子问题的最优解 大问题分解成若干个小问题,这些小问题之间还重叠着更小的问题、 从上向下分析,从下往上求解问题(通常使用数组存储小问题的最优解) 贪心算法:每一步可以做出一个贪婪的选择,基于这个选择能得到最优解 将一个n长的绳子剪成m段,每一段 阅读全文
posted @ 2020-03-29 14:31
浪波激泥
阅读(273)
评论(0)
推荐(0)
摘要:
递归: 1.创建遍历标识数组 2.检查当前位置是否符合,如符合则改变标识,进入 3.选择方向递归,将四个方向递归的数量相加 阅读全文
posted @ 2020-03-29 14:28
浪波激泥
阅读(197)
评论(0)
推荐(0)
摘要:
判断矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中任意一格开始,向左右上下移动,路径不重复方法:递归回溯,回溯法适合又多个步骤组成的问题 boolean hasPath( char [][] matrix, int rows ,int cols,char[] str){ if(mat 阅读全文
posted @ 2020-03-29 14:27
浪波激泥
阅读(210)
评论(0)
推荐(0)
摘要:
把一个有序数组前面若干个数搬到后面,求数组中最小值 方法一:顺序查找最小值 O(n) 方法二:利用该序列的特殊性,使用二分查找 static int min(int [] array){ if(array==null||array.length<=0){ return -1; } int L=0; 阅读全文
posted @ 2020-03-29 14:26
浪波激泥
阅读(161)
评论(0)
推荐(0)
摘要:
思路:可自上往下递归,但是递归数目大时会栈溢出,而且慢。使用循环迭代自下往上最实在。 如果要求在二维数组上搜索路径,通常使用递归,如果不允许递归那么就是用栈来模仿递归 求某个问题的最优解,并且该问题可以划分为若干个子问题,那我们可以尝试动态规划,如果我们此时使用递归会发现,子问题中存在重叠的更小子问 阅读全文
posted @ 2020-03-29 14:24
浪波激泥
阅读(244)
评论(0)
推荐(0)
摘要:
两个栈实现队列 思路:队列是“先进先出”,栈是“先进后出”,模仿进队出队 定义 stack1,stack2 进队则进栈stack1, 出队则 stack1出栈,stack2进栈,再出栈即出队,再所有出栈到stack1两个队列实现栈 思路:队列是“先进先出”,栈是“先进后出”,模仿进队出队 定义 qu 阅读全文
posted @ 2020-03-29 14:23
浪波激泥
阅读(168)
评论(0)
推荐(0)
摘要:
给定一个二叉树和一个节点,如何在中序遍历序列的下一个节点,树中结点不只有左右节点指针,还有一个指向类的指针 分析:在中序遍历中,先边再根节点,再右边情况1: 如果该节点没有右节点,且是父节点的左节点,下一个节点指向父节点情况2: 如果有右节点,指向右节点的最左节点情况3: 如果该节点没有右节点,且还 阅读全文
posted @ 2020-03-29 14:22
浪波激泥
阅读(174)
评论(0)
推荐(0)
摘要:
输入某二叉树的前序遍历和中序遍历结果,请重建二叉树,假设不含重复数字 分析:前序遍历中的根节点在序列的第一个,根节点在中序遍历结果序列中可以将左右子树分开 BinaryTreeNode Construct( int A[ ] , int B[ ]){ if( A ==null || B=null | 阅读全文
posted @ 2020-03-29 14:20
浪波激泥
阅读(209)
评论(0)
推荐(0)
摘要:
方法1:定义栈结构,遍历链表将值存在栈里面,然后再出栈打印 O(n)方法2:递归的本质也是栈,但是链表过长的话可能会造成内存溢出 void f1(ListNode * head){ if(head!=null) if(head->next!=null) f1(head->next); cout>>h 阅读全文
posted @ 2020-03-29 14:19
浪波激泥
阅读(244)
评论(0)
推荐(0)
摘要:
对于字符数组,不同语言的处理方法不同,在C/C++中可以指向数组尾部的下一个单元,只要内存够允许下标越界,但是在java中,不予许因为java缺乏指针,所建立数组长度不可变。C/C++: 方法1:暴力法 O(n*n) 遍历数组,遇到空格则插入,其他的后移,继续遍历 方法2:先遍历空格数量,计算出总长 阅读全文
posted @ 2020-03-29 14:16
浪波激泥
阅读(181)
评论(0)
推荐(0)
摘要:
二维数组中,左到右递增,上到下递增,寻找数组中的一个数 方法一:暴力遍历,时间复杂度(n*n) 方法二:剔除法 1.选择右上角数字 2.如果数字大于要查的数字,说明整一列都大于要查找的数字,剔除列,直到小于或等于,如果等于就找到了 3.如果数字小于于要查的数字,从上面那样一列中,这一列表示每一行的最 阅读全文
posted @ 2020-03-29 14:15
浪波激泥
阅读(271)
评论(0)
推荐(0)
摘要:
在长度n的数组中,值的范围是0~n-1,数组中必定重复了,不知道哪个数字重复了,请找出任意对应数字 方法1:先排序,后遍历 O(nlogn+n) 方法2:不创建新空间,利用值与与下标替换的方法 两个循环,但第二个循环最多两次,所以时间O(n) 如 {2,3,1,0,2,5,3} 下标0的值是2,那么 阅读全文
posted @ 2020-03-29 14:13
浪波激泥
阅读(453)
评论(0)
推荐(0)

浙公网安备 33010602011771号