leetcode内功之路
就叫温华啦
这个作者很懒,什么都没留下…
展开
-
leetcode-39 组合(我恨组合)
递归的思想:每一次的递归功能,我给它抽象为新找一个位,在该位上,这个数是可以变大的,以此来帮助sum变大从而匹敌 target。这里有意思的地方在于每次都可以用原来的数。(盗图~)#include<iostream>#include<vector>using namespace std;class Solution {public: vecto...原创 2019-04-16 20:49:26 · 125 阅读 · 0 评论 -
leetcode 73:矩阵置0
我的思路是 ,用一个hash set存 每个为0点的坐标,然后取出来后迭代置0; 这样做的话也有毛病:处有重复置0的情况struct VectorHash{ size_t operator() (const vector<int>& v) const{ hash<int> hasher; size_t seed = 0; for(int i...原创 2019-04-29 20:12:37 · 151 阅读 · 0 评论 -
leetcode79- 找单词
dfs 广度搜索: 额 说白了就是每次往 上下左右四周找匹配的·字符罢了同时还要注意当前字符是否已经使用过了。#include<vector>#include<string>#include<iostream>using namespace std;class Solution {public: bool exist(vecto...原创 2019-05-05 16:30:30 · 147 阅读 · 0 评论 -
leetcode80-删除排序数组中的重复项 II
https://blog.csdn.net/sss__c/article/details/80787931给我的帮助很大,。开阔大脑, medium ===> easy#include<vector>#include<iostream>using namespace std;class Solution {public: ...原创 2019-05-05 20:35:25 · 169 阅读 · 0 评论 -
leetcode90. 子集 II
第K次有n个集合, 第k+1次 即为在原有的每个集合中再插入一个数值然后再填入第K个集合中,即为第K+1,当碰到重复元素时, 只需要对 前一次才加入的集合 增加其一个元素就好了class Solution {public: vector<vector<int>> subsetsWithDup(vector<int>& ...原创 2019-05-08 15:09:48 · 138 阅读 · 0 评论 -
leetcode 81: 搜索旋转排序数组 II
和leetcode 33 题一样 分 判断 该点落在哪里,然后在哪里二分的找有趣的一步是: 如果 中点和 最左和最右相同 则无法判断 该点落于何处,则 舍弃该两点~~~class Solution {public: bool search(vector<int>& nums, int target) { int size = nums.si...原创 2019-05-06 15:08:33 · 114 阅读 · 0 评论 -
leetcode82:删除排序链表中的重复元素 II
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */// 总的思想: 先确定能用的头节点(过滤掉很多值),然后 在其后的遍历过程中把...原创 2019-05-07 20:27:20 · 125 阅读 · 0 评论 -
leetcode 83:删除排序链表中的重复元素
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */// 思想: go指针遍历所有,be指针在go指针之前: 当go指针与be指针所...原创 2019-05-07 20:32:02 · 171 阅读 · 0 评论 -
leetcode86. 分隔链表
#include<queue>#include<iostream>using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; // 思想: 遍历链表:两个队列分别存小于...原创 2019-05-07 20:34:35 · 140 阅读 · 0 评论 -
leetcode 77、78 - 一个找组合 一个找子集,其实是同一类题目
77:class Solution {public: vector<vector<int>> combine(int n, int k) { vector<vector<int> > result; vector<int> res; vector<int> st...原创 2019-05-05 09:52:42 · 141 阅读 · 0 评论 -
leetcode -71: 简化路径
// 该题逻辑: 第一步:扫描字串: 跳过每次遍历开头碰到的所有斜杠,收集字母的字符串,碰到 '.' 的话不理睬,碰到 ‘..’ 的话,能弹栈就弹栈,这样,就把待显示的数据收集好了。// 第二步: 弹栈并 组合#include<algorithm>#include<stack>#include<iostream>#include<string...原创 2019-04-29 15:30:26 · 143 阅读 · 0 评论 -
leetcode 69 平方根
思路:对于0~x 之间去找一个整数i,1.使得i的平方等于 x 或者2. i的平方 小于x , 但 (i+1)的平方大于x如果能找到,我们就得到了结果。最原始的话是用顺序搜索法,从0开始往后搜索,但这种方法太慢了,因为有序,我们懂得二分的方法去找一个数。每次我们定一个中点 mid , 若此时mid 满足以上两个条件中的一个,即代表我们找到了这个数,直接返回即可。若当前...原创 2019-04-29 09:53:28 · 222 阅读 · 0 评论 -
leetcode40
感觉和39题一波一样的思想。。。。。easy#include<iostream>#include<vector>using namespace std;class Solution {public: vector<vector<int>> combinationSum2(vector<int>& candid...原创 2019-04-17 14:21:15 · 271 阅读 · 0 评论 -
leetcode 60 万恶的全排列+ 找第K个全排列
代码学习于 :https://www.cnblogs.com/ariel-dreamland/p/9149577.html规律和 例子也在那篇博客中。》#include<string>#include<iostream>#include<vector>using namespace std;class Solution {public: ...原创 2019-04-26 11:50:04 · 202 阅读 · 0 评论 -
leetcode-38
#include<string>#include<iostream>using namespace std;class Solution {public: string countAndSay(int n) { if(n == 0) return ""; if(n == 1) return...原创 2019-04-15 10:24:59 · 225 阅读 · 0 评论 -
leetcode-35
class Solution {public: // 对每个数进行扫描,若当前数小于目标,直接下一个,若当前述大于等于目标 ,则返回下标地址, // 当所有书都没有命中,则在最后添加东西,则返回 size int searchInsert(vector<int>& nums, int target) { int size = nums.size(); ...原创 2019-04-15 10:25:31 · 330 阅读 · 0 评论 -
leetcode75 颜色分类
很多的排序算法如 冒泡 插入 什么的,都是基于比较的,这题还可以通过 基于 数据下标的算法: 计数排序 来做下面的解为 partition 的分区方法, 供参考: 思路: 0放左边 2方右边,遇1直接跳过class Solution {public: void swap(vector<int>& nums, int i, int j){ ...原创 2019-05-02 11:45:12 · 125 阅读 · 0 评论 -
leetcode- 62 不同路径
思路: 最后一行 和最后一列 只有一条路可以走,所以 都填1;然后其他所有格子能走的可能性为 往下走的时候的可能性 加上往右走的时候的可能性,当最终所有都求和结束的时候,返回matrix【0】【0】 就是最终的蛋啊#include<vector>#include<iostream>using namespace std;class Solution {...原创 2019-04-27 20:31:59 · 94 阅读 · 0 评论 -
leetcode- 63 不同路径2
和前一题一样的思路,但是因为障碍物的存在稍微有点不一样在对最后一行赋值时,从最右往左扫描:在找到第一个障碍物的右侧都赋值1,左侧和障碍物处赋值0在对最后一列赋值时,从最下往上扫描:在找到第一个障碍物的下侧都赋值1,上侧和障碍物处赋值0然后 格子所在的值为 右侧 值 加下侧的值最终返回matrix【0】【0】;// 测试过了, 不考虑单独 一行一列的情况,oJ也能AC,估计...原创 2019-04-27 20:38:02 · 86 阅读 · 0 评论 -
leetcode 64 -最小路径和
DP思想:对于第一行和第一列 都是从左往右 ,从上到下累加。然后对于其他的每个格子: 其值 为 它上面一个的值 和左边一格值的最小值 加上本格子的值。这是一题非常简单的DP题,用来练思维是再好不过了。能 AC~ 真实开心 时间(23min)#include<iostream>#include<vector>#include<algorithm...原创 2019-04-28 10:16:24 · 140 阅读 · 0 评论 -
leetcode89 格雷编码
原理 图示 在这个链接里。。。。。。(感谢作者。)https://blog.csdn.net/u012501459/article/details/46790683思想: 迭代进化的感觉,找到规律就好做了:当我们知道了第K次的情况是什么,则k+1次的情况为 ( K次的解) + ( K次解的翻转,然后补最高位1)class Solution {public:...原创 2019-05-08 09:13:07 · 128 阅读 · 0 评论