我是愿至安
我是愿至安
全部文章
题解
算法-链表(4)
归档
标签
去牛客网
登录
/
注册
我是愿至安的博客
全部文章
/ 题解
(共23篇)
题解 | #斐波那契数列#
面某某服二面原题,在经过面试官提示后(还故意试探给我留坑:可以用数组保留啥),要达到时间复杂度和空间复杂度最小 自己最开始想的是递归,面试官说不让那么搞 /** * * @param n int整型 * @return int整型 * * C语言声明定义全局变量请加上static,防止...
C
2022-05-08
0
357
题解 | #买卖股票的最好时机(二)#
核心思想 买卖股票的实际操作是买入一次,也就是某一天的价格,后面天数在寻求涨价,则出手。 不涨则不出手 要避免错误的思维:每天都买,然后在某一天找之前最小股票,然后求差值 每出现一次涨价,则与之前求差值,累加最大收益。 当遇到:前若干天是递减,则不算收益,当天涨,则只需要用当天与之前最小值求...
C
2022-05-06
0
323
题解 | #买卖股票的最好时机(一)#
面试的时候,死活在成功的边缘试探,没有成功写出来,遗憾! 一晚没有睡好,早起,刷题 求最大差值, O(n) 遍历,维护最小值num_min 遍历,维护最大差值delta_max 遍历,当前值与最小值求差,tmp 差值tmp与delta_max比较,大于则更新最大值 注意初始化最小值的时候,就用第一...
C
2022-05-06
1
354
题解 | #链表中倒数最后k个结点#
一遍通过 判空 定义快慢指针 fast指针先跑k个结点 - n=0,则从输出头指针,n+1, 结点后移1 struct ListNode* FindKthToTail(struct ListNode* pHead, int k ) { // write code here //...
C
2022-04-12
0
275
题解 | #两个链表的第一个公共结点#
核心思想 遍历两条链表,条件为 move1->val != move2->val or move1 != NULL && move2 != NULL 判断两个结点相等,则返回结点 两条链表后移 move1 == NULL && move2 == N...
C
2022-04-12
0
296
题解 | #二分查找-I#
核心思想 三刷了,居然一些关键条件还是忽略 判空 定义新节点, 免除额外求得头指针 判断两个链表都不能为空 - while(pHead1 != NULL && pHead2 != NULL) 比较的时候,需要注意相等的情况, 相等部分可以优化 三刷答案 /** * s...
C
2022-04-12
0
451
题解 | #重排链表#
/** * struct ListNode { * int val; * struct ListNode *next; * }; * * C语言声明定义全局变量请加上static,防止重复定义 */ /** * * @param head ListNode类 * @retu...
C
2022-03-01
0
320
题解 | #环形链表的约瑟夫问题#
核心思想 成环, 返还tail结点 初始化前哨指针,和当前指针 遍历计数,当技术等于m了,则摘掉当前结点,从下个结点开始 返回最一个指针,即当前指针的val /** * * @param n int整型 * @param m int整型 * @return int整型 * * ...
C
2022-03-01
3
415
题解 | #删除有序链表中重复的元素-II#
核心思想 设置前哨结点和移动前哨结点指针 一次遍历,判断当前指针和下一个指针相等,就删除下一个结点,直到下一个不相等值 有重复的,删除之际,标记出来当前结点需要删掉 判断标记,当前结点是否需要删掉 遍历完后,需要注意最后的当前结点是否需要删除 /** * struct ListNode ...
C
2022-02-14
0
407
题解 | #链表的奇偶重排#
核心思想 链表长度<=2的,直接返回 定义初始结点,分别指向第一个奇数结点,和第二个偶数节点 循环,判断条件是当前偶数节点是否有下一个奇数结点 有奇数结点,则完善奇数链表,也就是摘掉当前的偶数节点,移动奇数链表尾结点 完事后,继续判断是否有偶数节点 有偶数节点,则完善偶结点链表 没有偶数...
C
2022-02-13
0
374
首页
上一页
1
2
3
下一页
末页