牛客566659818号
牛客566659818号
全部文章
分类
归档
标签
去牛客网
登录
/
注册
牛客566659818号的博客
全部文章
(共15篇)
题解 | #数组中只出现一次的两个数字#
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param numsLen int nums数组长度 * @return int整型一维数组 * @return int* retur...
2023-06-28
0
138
题解 | #数组中出现次数超过一半的数字#
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param numbers int整型一维数组 * @param numbersLen int numbers数组长度 * @return int整型 */ //本题用哈希表进行存...
2023-06-27
0
103
题解 | #二分查找-I#
真的就是二分查找,比较简单 int search(int* nums, int numsLen, int target ) { int low,high,mid; low=0; high=numsLen; &n...
二分查找
C
2022-08-11
0
160
题解 | #删除有序链表中重复的元素-I#
本题用双指针,先定义一个tail使其一直遍历,并与定义的cur进行比较,如果不相等,则将cur的next指向tail,并将cur传至tail位置,如果相等则tail一直遍历。 struct ListNode* deleteDuplicates(struct ListNode* head ) {...
链表
C
2022-08-10
0
216
题解 | #链表的奇偶重排#
本题用了四个变量,作用分别是n1,n2寻找奇数下标和偶数下标;h1,h2分别是奇数的头结点和偶数头结点,最后将n1的next指向h2,将两数相连即可。 struct ListNode* oddEvenList(struct ListNode* head ) { // wr...
链表
C
2022-08-10
3
378
题解 | #链表相加(二)#
本题解法思路简单,就是翻转后两个链表对应的数进行相加,如果得到结果大于10,则需要取余,并用一个数保留进位,但是该题边界条件判断较为复杂(俺都是各处取经)。 1、如果两个链表都没有到NULL则一直进行循环。其中如果在此循环中有一个链表已经为NULL,则不再访问这个链表val与Next,不然会段...
链表
C
2022-08-05
0
235
题解 | #两个链表的第一个公共结点#
本题参考大佬的巧解,将两个指针遍历两个链表,因为两个的速度和路程相等,那么相遇点一定是相交点,如果两者不相交,因为速度和路程一样那么,都会指向NULL。 还有一种很笨的方法循环里面套循环也可以,但是时间复杂度高。 struct ListNode* FindFirstCommonNode(st...
链表
C
2022-08-04
0
192
题解 | #删除链表的倒数第n个节点#
思路:本题先查找到倒数的第n个节点,用slow存储这个点的位置,相关解发参考算法上一道题,找到后用一个变量tail存储这个n点的前一位,再将tail的next指向改变为slow的next,注意有内存泄漏所以要加上n是不是头结点的位置,如果是则改变头的指向。 struct ListNode* remo...
双指针
C
链表
2022-08-04
0
207
题解 | #链表中倒数最后k个结点#
此题思路快慢指针,先用快指针走k步,如果k的大小没有超过链表大小,则快慢指针同时移动,这样两者始终保持k距离,当快指向空时,返回慢指针即为倒数的k个结点 struct ListNode* FindKthToTail(struct ListNode* pHead, int k ) { &...
双指针
链表
C
2022-08-03
3
161
题解 | #链表中环的入口结点#
本题理解实现思路后,代码实现比较容易,其实现式子为2(a+b)=a+(b+c)n (n为闭环的圈数,这个式子就是快点的等式,左边是慢节点两倍,右边就是快点走的路), 可以得到,从相遇点到闭环起始点距离c与a是相等的,所以再用快指向头结点,从新遍历并将速度改为1步,当两点再次相遇时,那个点就是闭...
链表
C
双指针
2022-08-03
0
203
首页
上一页
1
2
下一页
末页