- 博客(27)
- 收藏
- 关注
原创 top200两个链表的第一个公共结点
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) { int len1=0,len2=0; ListNode* p=pHead
2021-05-27 20:29:04
78
原创 top200合并两个有序数组
从数组后面向前处理会更方便class Solution {public: void merge(int A[], int m, int B[], int n) { int i=m-1,j=n-1,a=m+n-1; while(i>=0||j>=0){ if((i>=0&&A[i]>=B[j])||j<0) A[a--]=A[i--]; el
2021-05-27 19:51:29
83
原创 top200判断链表中是否有环
虽然不是太明白快慢指针对于有环的判断,但emmm/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: bool hasCycle(ListNode *head) { if(
2021-05-27 19:45:20
61
原创 top200数组中出现次数超过一半的数字
不是,说我这个超过0.00%是不是太欺负人了!!哼,反正我通过了,我就是擅长穷举。class Solution {public: int MoreThanHalfNum_Solution(vector<int> numbers) { int a=numbers.size(); int b=0; int c=0; for(int i=0;i<a;i++){ b=numbers[i];
2021-05-27 19:25:48
60
原创 top200括号序列
class Solution {public: /** * * @param s string字符串 * @return bool布尔型 */ bool isValid(string s) { // write code here stack<char> ss; bool a=false; for(int i=0;i<s.length();i++){
2021-05-27 18:24:19
69
原创 top200子数组的最大累加和问题
class Solution {public: /** * max sum of the subarray * @param arr int整型vector the array * @return int整型 */ int maxsumofSubarray(vector<int>& arr) { // write code here int max=0; int cur=0;
2021-05-27 17:49:30
100
原创 top200合并有序链表
/** * struct ListNode { * int val; * struct ListNode *next; * }; */class Solution {public: /** * * @param l1 ListNode类 * @param l2 ListNode类 * @return ListNode类 */ ListNode* mergeTwoLists(ListNode* l1, ListNode*
2021-05-27 17:41:45
71
原创 top200两数之和
class Solution {public:/**** @param numbers int整型vector* @param target int整型* @return int整型vector*/vector twoSum(vector& numbers, int target) {// write code hereint index1=-1,index2=-1;int a=numbers.size();for(int i=0;i<a;i++){for(int j
2021-05-27 17:16:33
64
原创 offer--树的子结构
原本想用KMP但忘了怎么写所以看了下评论没想到都没有KMP,多看了两眼才知道不行。记录两段。原来的先序遍历其实是DFS,由于比较的是子结构,不是子树,所以采用原来的先序遍历会报错,可以调整下遍历算法,采用BFS,这样就没问题了。子树能用序列化+KMP,子结构不能,因为子结构不管采用何种方式序列化,都不能保证在整棵树的序列化中连续。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNo
2021-04-14 22:49:19
74
原创 offer--合并两个排序的链表
一开始的pHead要指向两链表种偏小的结点,一开始没有指向,直接用的空不行,要指向一个结点/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode* pHe
2021-04-13 22:12:04
63
原创 offer--反转链表
注意要有一个记录前面结点的指针。p是当前指针,r是当前指针的前一个结点,pnext为了记录下一个结点,预防找不到。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* pHead) { if(pHead==NULL
2021-04-12 20:04:37
52
原创 offer--链表中倒数第k个节点
明明不止一次看到这个算法还是在每次看到的时候恍然大悟,我也是绝了,每次都用暴力。/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * *
2021-04-12 19:21:44
51
原创 offer--调整数组顺序使奇数位于偶数前面
第一反应是加个数组,还有插入排序,但没反应过来是叫插入排序。class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param array int整型vector * @return int整型vector */ vector<int> reOrderArray(vector<int>& array)
2021-04-12 18:48:26
63
原创 offer--数值的整数次方
我看我脑子只会最暴力的算法,也不知道这些都学到哪去了,想不出来简单的,但像这种我一猜这么直接乘肯定会超过的就放弃了。贴一个快速幂的博客:https://blog.youkuaiyun.com/hkdgjqr/article/details/5381028还是自己看了算法敲会印象深一点class Solution {public: double power(double base,int exponent){ double result=1.00; if(exponent
2021-04-12 17:38:23
86
原创 offer--二进制中1的个数
不会写负数有关的,哎,我一直想知道这种都是咋想出来的,多做题能做到吗。贴个评论解析如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1,而前面的1保持不变,因此得到的结果是1011.我们发现减1的结果是把最右边的一个1开始的所有位都取反了。
2021-04-12 17:02:58
60
原创 offer--矩形覆盖
做个笔记吧第一次摆放一块 21 的小矩阵,则摆放方法总共为f(number- 1)第一次摆放一块12的小矩阵,则摆放方法总共为f(number-2)class Solution {public: int rectCover(int number) { if(number<=2) return number; int f=1,g=2,result=0; for(int i=3;i<=number;i++){ r
2021-04-11 18:47:39
53
原创 offer--跳台阶问题
class Solution {public: int jumpFloorII(int number) { if(number<=0) return -1; else if(number==1) return 1; else return 2*jumpFloorII(number-1) }};
2021-04-11 18:29:11
54
原创 offer--跳台阶
实际是斐波那契数列class Solution {public: int jumpFloor(int number) { if(number<=2) return number; int f1=1,f2=2; int sum=0; for(int i=2;i<number;i++){ sum=f1+f2; f1=f2; f2=sum;
2021-04-11 17:16:37
47
原创 offer--斐波那契数列
下意识用递归还思考了下怎么写,但评论说递归计算量太大通过不了。class Solution {public: int Fibonacci(int n) { int f=0,g=1; int result=0; if(n==0) return 0; if(n==1) return 1; for(int i=2;i<=n;i++){ result=f+g; f=g;
2021-04-11 16:48:27
66
原创 offer--旋转数组的最小数字
我看理解题意将是我在刷题路上最大的障碍。这题,非递减有序数组->旋转后的数组->找最小原来觉得直接找最小但题目提示用二分class Solution {public: int minNumberInRotateArray(vector<int> rotateArray) { if(rotateArray.empty()) return 0; int left=0,right=rotateArray.size()-
2021-04-11 16:38:50
52
原创 offer--两个栈实现队列
C++注意一下是先得到栈顶元素,然后push到新栈,旧栈再pop。class Solution{public: void push(int node) { stack1.push(node); } int pop() { int a; if(stack2.empty()){ while(!stack1.empty()){ a=stack1.top();
2021-04-10 13:29:06
46
原创 offer--重建二叉树
C++ 没记错的话这类树的大部分都是递归/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* reConst
2021-04-10 13:19:27
49
原创 offer--从尾到头打印链表
C++,用栈(很多东西要想起来用)class Solution {public: vector<int> printListFromTailToHead(ListNode* head) { vector<int> value; ListNode *p=NULL; p=head; stack<int> s; while(p!=NULL){ s.push(p-&
2021-04-10 12:53:20
48
原创 offer--替换空格
C++class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 */ string replaceSpace(string s) { // write code here int n =s.size(); stri
2021-04-10 12:35:57
100
原创 offer--二维数组中的查找
C++代码感觉自己C++学的不怎么好但是这些刷题感觉还是C++和Java用起来顺手一些,可是怕面试的时候问到的不怎么会,就悲伤。class Solution {public: bool Find(int target, vector<vector<int> > array) { int rows=array.size(); int cols=array[0].size(); int i=rows-1,j=0;
2021-04-10 12:05:43
62
原创 postman接口测试相关错误
想了下,我这种本来就喜欢保存自己做作业中遇到错误并且解决办法的人还是应该写博客。postman出错500 Internal Server Error将text改为json就好,一开始没注意到这里
2020-05-23 21:25:43
637
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人