
【02】刷题
刷题记录
神秘的火柴人
学习不是短时间的冲刺,而是有节制的坚持:)
展开
-
229. 求众数 II
思路:利用两个变量分别保存可能满足条件的数并记录其对应的个数若当前数与两个变量保存的数都不同,则变量对应的个数都减1拓展:找出出现次数超过 [ n/k ] 次:用k-1个变量保存可能满足条件的数及对应的个数class Solution {public: vector<int> majorityElement(vector<int>& nums) { int r1, r2, c1 = 0, c2 = 0; //r1,r2:两个..原创 2021-09-08 22:17:59 · 158 阅读 · 0 评论 -
148. 排序链表
思路:归并排序自底向上:从长度为1开始,两两归并每次长度*2/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x..原创 2021-09-06 23:45:05 · 150 阅读 · 0 评论 -
169. 多数元素
思路:记录保存数及其次数;①如果当前数与保存数不一致,次数减一,次数减为0,则保存当前数②如果当前数与保存数一致,次数加一class Solution {public: int majorityElement(vector<int>& nums) { int r = nums[0], c = 1; for(int i=1; i<nums.size(); i++) { if(r != nu..原创 2021-09-05 23:08:55 · 117 阅读 · 0 评论 -
179. 最大数
179. 最大数思路:自定义排序规则:a < b 等价于 to_string(a)+to_string(b) < to_string(b)+to_string(a)class Solution {public: string largestNumber(vector<int>& nums) { sort(nums.begin(), nums.end(), cmp); string s; for(aut原创 2021-09-05 09:08:30 · 123 阅读 · 0 评论 -
LeetCode典型题——递归与回溯
递归和回溯class Solution {public: vector<string> letterCombinations(string digits) { vector<string> ret; if(digits.length() == 0) return ret;...原创 2019-08-07 10:47:36 · 180 阅读 · 0 评论 -
LeetCode典型题——字符串
1.常用方法to_string()atois.substr( size_type pos = 0, size_type count = npos )2. 题目class Solution {public: string countAndSay(int n) { string s = "1"; for(int i=2...原创 2019-08-08 17:03:41 · 278 阅读 · 0 评论 -
LeetCode典型题——二分查找
目录1. 思想2. 模板题目1. 思想寻找一个标准,可以使原始数据具有两段性2. 模板情况一:按照某种性质将数据分为两类,target在后半部分若此时mid > target,则R = mid;否则L = mid + 1int bsearch_1(int l, int r){ while(l < r) { int mid...原创 2019-07-16 14:13:08 · 249 阅读 · 0 评论 -
剑指offer(四)
31.整数中1出现的次数32.把数组排成最小的数对数组进行排序排序规则:将int a, int b转为string若 a+b<b+a a排在在前class Solution {public: string PrintMinNumber(vector<int> numbers) { sort(numbers.beg...原创 2019-07-05 15:51:54 · 343 阅读 · 0 评论 -
剑指offer(五)
文章目录41. 和为S的两个数字42. 左旋转字符串43. 翻转单词顺序列44. 扑克牌顺子45. 圆圈中最后剩下的数46. 求1+2+3+…+n47. 不用加减乘除做加法48. 把字符串转换成整数49. 数组中重复的数字50. 构建乘积数组41. 和为S的两个数字a+b=sum,a和b越远乘积越小a+b=sum;a+n+b-n=sum;(a+n)(b-n)=ab+n(b-a)>...原创 2019-07-10 21:02:53 · 85 阅读 · 0 评论 -
剑指offer(三)
21. 栈的压入、弹出序列class Solution {public: bool IsPopOrder(vector<int> pushV,vector<int> popV) { int i = 0; int j = 0; for(; i<pushV.size(); i...原创 2019-06-27 15:15:18 · 201 阅读 · 0 评论 -
LeetCode典型题——动态规划
class Solution {private: vector<int> memo; int breakInteger(int n){ if(n == 1) return 1; if(memo[n] != -1) return memo[n]; int re...原创 2019-06-23 17:18:52 · 216 阅读 · 0 评论 -
剑指offer(二)
11.二进制中1的个数class Solution {public: int NumberOf1(int n) { int ret = 0; for(int i=0; i<sizeof(int)*8; i++) //不能使用 while(n != 0) ...原创 2019-06-22 15:58:28 · 98 阅读 · 0 评论 -
剑指offer(一)
文章目录1.二维数组中的查找2.替换空格3.从尾到头打印链表1.二维数组中的查找解法1:class Solution {public: bool Find(int target, vector<vector<int> > array) { int m = array.size(); int n = array[0].si...原创 2019-06-19 20:48:11 · 118 阅读 · 0 评论