LeetCode
Kir_illo
计算机专业的一只小菜鸟,为炼就一双强有力的翅膀而努力着~
展开
-
【LeetCode】914 X of a Kind in a Deck of Cards(cpp)
题目省略233思路:1、新建map<int, int>容器,定义容器的第一个值为deck元素的值,第二个值为该元素在deck中出现了几次(利用map中关键字的值只能出现一次的特点);2、遍历deck中的元素,若map中没有关键字和当前遍历到的元素相等,则添加<当前遍历的值, 1>进入map;3、当deck中所有元素处理好后,计算map中两两关键字的值的最大公...原创 2018-12-12 21:49:20 · 209 阅读 · 0 评论 -
【Leetcode】56. Merge Intervals (cpp)
第一道一遍过的中级题,有点激动~当然是因为这道题不难啦QAQ很容易想到要先按start排序啦,这里有个知识点,sort()有第三个参数,是一个函数,通过它我们可以指定排序的方式。注意,该函数必须为该类的static函数。然后就是遍历数组,可以合并的合并,不能合并的丢到结果集里面。/** * Definition for an interval. * struct Interv...原创 2019-04-02 16:15:01 · 171 阅读 · 0 评论 -
【LeetCode】154. Find Minimum in Rotated Sorted Array II (cpp)
题目和测试用例略233本题作为153题的升级版,难点在于数组中的数可能有重复的。这种问题很容易想到用二分搜索的思想来解决(毕竟如果暴力求解时间复杂度只有O(N),比O(N)小的就是O(logN)了233)。设l是考虑的左边界,r是右边界,m是计算出的中点坐标。下面开始分情况讨论:先是最简单的情况,nums[m]>nums[r] 或nums[m]<nums[r] 解...原创 2019-03-25 15:45:55 · 182 阅读 · 0 评论 -
【Leetcode】19. Remove Nth Node From End of List (cpp)
讲思路的文章已经很多了,不再赘述,这里用的方法是两个指针一次遍历算法。想强调的是有可能要删除的就是第一个结点。删除头节点比较方便的做法是加一个伪头节点。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int...原创 2019-03-12 20:22:54 · 116 阅读 · 0 评论 -
【LeetCode】123.Best Time to Buy and Sell Stock III(cpp)
题目省略233这是一个牺牲空间复杂度来换取时间复杂度的例子。买卖股票的题目在LeetCode中有一整个系列(有很多博客在写,很容易搜到)。这道题目是规定最多买卖两次,而第121道题要求只能买一次。我们可以从121中获得一部分思路。121的思路:遍历数组,一方面计算当前的最优收益,与最高收益做比较;另一方面记录股票的最低价,便于与日后做比较。代码如下:class Solutio...原创 2018-12-20 16:25:09 · 133 阅读 · 0 评论 -
【LeetCode】867. Transpose Matrix
题目省略233这道题挺简单的,就知道转置的矩阵A[i][j]=B[j][i]就行了。收获:设定vector大小除了构造的时候直接调构造函数,也能用resize函数。class Solution {public: vector<vector<int>> transpose(vector<vector<int>>& A) ...原创 2018-12-13 17:41:37 · 154 阅读 · 0 评论