leetcode
爻爻的大金毛
这个作者很懒,什么都没留下…
展开
-
寻找两个正序数组的中位数
1.题目描述 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (m+n)) 。【用冒泡排序时间复杂度是O(n²)】 2.程序 int compFunc(void* a, void* b) { int* node1 = (int*)a; int* node2 = (int*)b; return (*node1 - *node2); } double fi原创 2022-02-11 11:21:08 · 474 阅读 · 0 评论 -
leetcode反转链表
1.双指针 struct ListNode* reverseList(struct ListNode* head){ struct ListNode*pre=NULL; struct ListNode*curr=head; struct ListNode* next = NULL; while(curr){ next=curr->next; curr->next=pre; pre=curr; curr=next; } return pre原创 2022-02-10 13:49:24 · 301 阅读 · 0 评论 -
leetcode 两数相加
题目要求 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 做法:模拟法 基本操作遍历两个列表,逐位计算它们的和,并与当前位置的进位值相加。比如,两个链表对应位的数字分别为n1和n2,进位为carrybit,则它们的和为(pos1 + pos2 + carrybit),对应位上数字变为(pos1 +pos2 + car原创 2022-02-09 11:40:39 · 324 阅读 · 0 评论 -
leetcode最长快乐字符
解题思路 qsort排序完成后进入for循环。如果已经有字母出现两次用continue进入i++;如果其他情况则执行完之后用break直接结束for循环。再进入if (hasNext==false) { break;的判断过程,判断标识符是否为假, typedef struct { int freq; char ch; } Pair;//定义一个结构体 int cmp(const void * pa, const void * pb) { return ((Pair *)pb)原创 2022-02-08 16:45:05 · 233 阅读 · 0 评论