上一页 1 ··· 8 9 10 11 12 13 14 15 下一页
摘要: 方法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 浪波激泥 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 对于字符数组,不同语言的处理方法不同,在C/C++中可以指向数组尾部的下一个单元,只要内存够允许下标越界,但是在java中,不予许因为java缺乏指针,所建立数组长度不可变。C/C++: 方法1:暴力法 O(n*n) 遍历数组,遇到空格则插入,其他的后移,继续遍历 方法2:先遍历空格数量,计算出总长 阅读全文
posted @ 2020-03-29 14:16 浪波激泥 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 二维数组中,左到右递增,上到下递增,寻找数组中的一个数 方法一:暴力遍历,时间复杂度(n*n) 方法二:剔除法 1.选择右上角数字 2.如果数字大于要查的数字,说明整一列都大于要查找的数字,剔除列,直到小于或等于,如果等于就找到了 3.如果数字小于于要查的数字,从上面那样一列中,这一列表示每一行的最 阅读全文
posted @ 2020-03-29 14:15 浪波激泥 阅读(257) 评论(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 浪波激泥 阅读(439) 评论(0) 推荐(0) 编辑
摘要: (7.2)节: 递归问题 1.题干: 递归方便表达,但是性能上消耗过多 1、有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶、3阶。 请实现一个方法,计算小孩有多少种上楼的方式。 为了防止溢出,请将结果Mod 1000000007 给定一个正整数int n,请返回一个数,代表上楼的方式数 阅读全文
posted @ 2019-12-04 16:06 浪波激泥 阅读(246) 评论(0) 推荐(0) 编辑
摘要: (6.1)节 水平称重 1、题干: 2、解答思路:将输入的数转化为3进制,由于不能出现两个以上一样的砝码,所以砝码只能出现一次,3进制表示的数表示砝码,符号表示不同盘 3、关键代码 string there(int a,int b)//将a转化成b进制,b<10;返回string对象 { strin 阅读全文
posted @ 2019-12-04 16:04 浪波激泥 阅读(361) 评论(0) 推荐(0) 编辑
摘要: (5.1)节 判断字符串有无重复元素 1、题干: 2、解答思路:在ascii码中,字符对应的int是0-127,所以创建128大小的数组,对原字符串进行计数,然后遍历数组,如果出现大于1的说明出现了两次以上,有重复。 如不能创建空间,那么使用比较查找,遍历每一个元素,在后面字符串查找,找到了说明重复 阅读全文
posted @ 2019-12-04 15:58 浪波激泥 阅读(227) 评论(0) 推荐(0) 编辑
摘要: (4.1)节: 顺时针打印二维数组 1、题干:构建二维数组,按照顺时针的方向打印 2、解题思路:不断对数组的外围进行打印,外围不断变小。 3、关键代码: int H=0,L=1;//最大行列坐标 ,根据实际定值 int h=0,l=0;//起始行列坐标 int i=h,j=l; while(l<=L 阅读全文
posted @ 2019-12-03 20:40 浪波激泥 阅读(217) 评论(0) 推荐(0) 编辑
摘要: (3.1)节: 分治思想 (3.2)节: 快速排序 快排的思想主要在划分,归并的思想主要在合并 ,快速排序在划分的同时将较小的数放在左边,较大的数放在右边,在不断的递归划分,最后不知不觉就排序好了 (3.3)节: 快速排序 单向扫描分区法 1、题干:单项扫描分区法 2、解答思路: 起始位置为主元,比 阅读全文
posted @ 2019-12-03 20:36 浪波激泥 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 寻找递推公式或等价转换,找出变化量变化规律,找出口 (2.1)节: 什么是递归 1、题干:求阶乘 2、解答思路:设置递归,找出变化规律,设置边界避免死循环 3、关键代码: Int f1(int n) { If(n==1) Return 1; Return n*f1(n-1); } (2.2)节: 切 阅读全文
posted @ 2019-12-03 20:27 浪波激泥 阅读(186) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 下一页