![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
复习
EGNIR
这个作者很懒,什么都没留下…
展开
-
保研复习:数据结构(最短路)
多源最短路、单源最短路、两点之间最短路原创 2022-07-11 21:03:38 · 230 阅读 · 0 评论 -
保研复习笔记:概率论与数理统计
大数定律、中心极限定理;参数估计;假设检验原创 2022-07-11 16:04:37 · 1067 阅读 · 0 评论 -
保研复习笔记:线性代数
特征值、特征向量;相似矩阵;对称矩阵;二次型;正定矩阵原创 2022-07-10 13:26:33 · 584 阅读 · 0 评论 -
leetcode刷题笔记 295.数据流的中位数【困难】
1、二分按顺序插入class MedianFinder {private: vector<int> v; double mid = 0;; int size = 0;public: MedianFinder() { } void addNum(int num) { v.insert(lower_bound(v.begin(), v.end(), num), num); size++; if原创 2021-08-27 09:32:47 · 125 阅读 · 0 评论 -
leetcode刷题笔记 169.多数元素【简单】
1、哈希表int majorityElement(vector<int>& nums) { int n = nums.size(); map<int, int> m; for (int i = 0; i < n; i++) { if (m.find(nums[i]) == m.end()) m[nums[i]] = 1; else { m[nums[i]]++; } if (m[nums[i]] > n / 2) retu原创 2021-08-25 13:25:16 · 70 阅读 · 0 评论 -
leetcode刷题笔记 371.两整数之和【中等】
int getSum(int a, int b) { while (a != 0) { int a2 = (unsigned int)(a & b) << 1; int b2 = a ^ b; a = a2; b = b2; } return b;}原创 2021-08-25 12:40:00 · 82 阅读 · 0 评论 -
leetcode刷题笔记 166.分数到小数【中等】
string fractionToDecimal(int numerator, int denominator) { if (numerator == 0) return "0"; string res; long long num = (long long)numerator; long long denom = (long long)denominator; if ((num > 0) ^ denom > 0) res.push_back('-'); num = abs(原创 2021-08-25 12:18:28 · 72 阅读 · 0 评论 -
leetcode刷题笔记 29.两数相除【中等】
int helper(long long a, long long b){ if (a < b) return 0; long long count = 1, tb = b; while (a >= tb * 2) { count = count * 2; tb = tb * 2; } return count + helper(a - tb, b);}int divide(int dividend, int divisor) { if (dividend ==原创 2021-08-25 11:37:38 · 62 阅读 · 0 评论 -
leetcode刷题笔记 50.Pow(x,n)【中等】
1、快速幂(递归)double helper(double x, long long n) { if (n == 0) return 1.0; double y = helper(x, n / 2); if (n % 2 == 0) return y * y; else return y * y * x;}double myPow(double x, int n) { if (n >= 0) return helper(x, n); else return 1/原创 2021-08-24 20:49:17 · 76 阅读 · 0 评论 -
leetcode刷题笔记 172.阶乘后的零【简单】
1、根据5的数目int trailingZeroes(int n) { //5的倍数的数量 25算2个 125算3个 int count = 0; for (int i = 1; i <= n; i++) { int k = i; while (k % 5 == 0) { count++; k /= 5; } } return count;}时间:O(n)2、除5的次方之和int trailingZeroes(int n) { int res = 0;原创 2021-08-24 20:04:05 · 80 阅读 · 0 评论 -
leetcode刷题笔记 202.快乐数【简单】
1、哈希表存储bool isHappy(int n) { int m = n; set<int> s; while (m != 1) { s.insert(m); int k = 0; while (m != 0) { k = k + pow(m % 10, 2); m /= 10; } m = k; if (s.find(m)原创 2021-08-23 19:34:02 · 64 阅读 · 0 评论 -
leetcode刷题笔记 300.最长递增子序列【中等】
1、动态规划int lengthOfLIS(vector<int>& nums) { int n = nums.size(); vector<int> flags(n); flags[0] = 1; int res = 1; for (int i = 1; i < n; i++) { int m = 0; for (int j = 0; j < i; j++) { if (nums[j] < nums[i]) { m = m原创 2021-08-23 19:15:46 · 107 阅读 · 0 评论 -
leetcode刷题笔记 322.零钱兑换【中等】
1、广度优先搜索int coinChange(vector<int>& coins, int amount) { if (amount == 0) return 0; int n = coins.size(); vector<int> flags(amount); queue<int> q; q.push(amount); int count = 0; while (!q.empty()) { count++; int s = q.si原创 2021-08-23 15:35:11 · 75 阅读 · 0 评论 -
leetcode刷题笔记 240.搜索二维矩阵 II【中等】
1、从左上角开始 递归bool searchMatrix(vector<vector<int>>& matrix, int target,int u,int d,int l,int r) { if (u > d || l > r) return false; else if (u == d && l == r && matrix[u][l] == target) return true; int i=u, j=l;原创 2021-08-22 20:20:25 · 115 阅读 · 0 评论 -
leetcode刷题笔记 347.前K个高频元素【中等】
1、存在哈希表后,放入vector,对vector用sortstatic bool cmp(pair<int, int> a, pair<int, int> b) { return a.second > b.second;}vector<int> topKFrequent(vector<int>& nums, int k) { int n = nums.size(); unordered_map<int, int> m;原创 2021-08-21 17:39:49 · 65 阅读 · 0 评论 -
快速排序算法
#include <bits/stdc++.h>using namespace std;void quicksort(vector<int>& v,int left,int right) { if (left >= right) return; int n = v.size(); int pivot = v[left]; int i = left, j = right; while (i < j) { while (i < j &am原创 2021-08-21 15:04:10 · 46 阅读 · 0 评论 -
leetcode刷题笔记 17.电话号码的字母组合【中等】
回溯void backtrack(vector<string>& ans, map<char, string>& m,string& digits, int index, string& str) { if (index == digits.length()) { ans.push_back(str);//一个结束 } else { char digit = digits[index];//位数 string letters = m原创 2021-08-13 17:16:04 · 139 阅读 · 0 评论 -
leetcode刷题笔记 160.相交链表【简单】
1、哈希表ListNode* getIntersectionNode(ListNode* headA, ListNode* headB) { if (headA == NULL || headB == NULL) return NULL; map<ListNode*, int> m; ListNode* cur = headA; while (cur) { m[cur] = cur->val; cur = cur->next; } cur = headB;原创 2021-08-08 14:59:22 · 94 阅读 · 0 评论 -
leetcode刷题笔记 328.奇偶链表【中等】
1、先确定节点个数,再按照要求调整节点顺序ListNode* oddEvenList(ListNode* head) { ListNode* last = head; ListNode* cur = head; int nums = 1; ListNode* odds = head; int total = 0; while (cur) { total++; cur = cur->next; } cur = head; while (total) { if (nums原创 2021-08-07 18:30:32 · 62 阅读 · 0 评论 -
leetcode刷题笔记2.两数相加【中等】
模拟ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode* ans = new ListNode; ListNode* cur = ans; int jinwei = 0; while (1) { int n1 = 0, n2 = 0; if (l1) { n1 = l1->val; l1 = l1->next; } if (l2) { n2 = l2->val; l2原创 2021-08-06 23:27:42 · 80 阅读 · 0 评论 -
leetcode刷题笔记 334.递增的三元子序列【中等】
1、贪心 三个变量bool increasingTriplet(vector<int>& nums) { int n = nums.size(); int first = 0, second = 0, third = 0; int i = 1; for (; i < n - 1; i++) { if (nums[i - 1] < nums[i]) { first = i - 1; second = i; third = first; br原创 2021-08-06 13:31:43 · 93 阅读 · 0 评论 -
leetcode刷题笔记 49.字母异位词分组【中等】
1、排序 哈希表vector<vector<string>> groupAnagrams(vector<string>& strs) { vector<vector<string>> ans; map<string,vector<string>> m; int n = strs.size(); for (int i = 0; i < n; i++) { string temp = strs[i];原创 2021-08-05 18:30:17 · 74 阅读 · 0 评论 -
leetcode刷题笔记 73.矩阵置零【中等】
1、将找到的第一个0所在行列作为标记行列。void setZeroes(vector<vector<int>>& matrix) { int m = matrix.size(); int n = matrix[0].size(); int first_m = -1, first_n = -1; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (matrix[i][j]原创 2021-08-05 15:23:46 · 75 阅读 · 0 评论 -
leetcode刷题笔记 15.三数之和【中等】
排序,按第一个数a进行循环,b向右找,c向左找。注意可能出现的重复解。vector<vector<int>> threeSum(vector<int>& nums) { //和为0 vector<vector<int>> ans; int len = nums.size(); sort(nums.begin(), nums.end()); for (int i = 0; i < len - 2 && num原创 2021-08-05 14:41:58 · 56 阅读 · 0 评论