摘要:
方法1:定义栈结构,遍历链表将值存在栈里面,然后再出栈打印 O(n)方法2:递归的本质也是栈,但是链表过长的话可能会造成内存溢出 void f1(ListNode * head){ if(head!=null) if(head->next!=null) f1(head->next); cout>>h 阅读全文
摘要:
对于字符数组,不同语言的处理方法不同,在C/C++中可以指向数组尾部的下一个单元,只要内存够允许下标越界,但是在java中,不予许因为java缺乏指针,所建立数组长度不可变。C/C++: 方法1:暴力法 O(n*n) 遍历数组,遇到空格则插入,其他的后移,继续遍历 方法2:先遍历空格数量,计算出总长 阅读全文
摘要:
二维数组中,左到右递增,上到下递增,寻找数组中的一个数 方法一:暴力遍历,时间复杂度(n*n) 方法二:剔除法 1.选择右上角数字 2.如果数字大于要查的数字,说明整一列都大于要查找的数字,剔除列,直到小于或等于,如果等于就找到了 3.如果数字小于于要查的数字,从上面那样一列中,这一列表示每一行的最 阅读全文
摘要:
在长度n的数组中,值的范围是0~n-1,数组中必定重复了,不知道哪个数字重复了,请找出任意对应数字 方法1:先排序,后遍历 O(nlogn+n) 方法2:不创建新空间,利用值与与下标替换的方法 两个循环,但第二个循环最多两次,所以时间O(n) 如 {2,3,1,0,2,5,3} 下标0的值是2,那么 阅读全文