
LeetCode
吃草的哈士奇
这个作者很懒,什么都没留下…
展开
-
1017. 负二进制转换
1017. 负二进制转换参考的是十进制转二进制的方法;class Solution {public: string baseNeg2(int N) { string ans; if (N==0) return "0"; while (N!=0){ int a=abs(N%(-2)); ...原创 2019-04-03 15:49:20 · 352 阅读 · 0 评论 -
869. 重新排序得到 2 的幂
869. 重新排序得到 2 的幂class Solution {public: bool reorderedPowerOf2(int N) { if(N==1) return true; else if(N==0) return false; int len=to_string(N).len...原创 2019-01-07 19:41:43 · 291 阅读 · 0 评论 -
71.简化路径
71.简化路径class Solution {public: string simplifyPath(string path);};string Solution::simplifyPath(string path){ //去掉所有多余的"/" regex regex3("\\/{2,}"); path = regex_replace(path, regex3, "/")...原创 2019-01-11 08:22:12 · 175 阅读 · 0 评论 -
70.爬楼梯
70.爬楼梯斐波那契数列class Solution {public: int climbStairs(int n) { vector<int>ans={1,1}; for (int i = 2; i <n+1 ; ++i) { int tmp_num=ans[i-2]+ans[i-1]; ...原创 2019-01-10 16:45:16 · 224 阅读 · 0 评论 -
916. 单词子集
916. 单词子集执行时间408msclass Solution {public: vector<string> wordSubsets(vector<string>& A, vector<string>& B) { vector&原创 2019-01-04 13:24:59 · 281 阅读 · 0 评论 -
686.重复叠加字符串匹配
686.重复叠加字符串匹配解决思路:分几种情况去讨论;值得注意的是时刻更新确定头部多出的字符串长度;class Solution {public: int head=0,tail=0; int repeatedStringMatch(string A, string B) { int times=0; auto pos_B=B.fi...原创 2018-12-19 11:08:24 · 310 阅读 · 0 评论 -
915. 分割数组
915. 分割数组class Solution {public: int partitionDisjoint(vector<int>& A) { int left = 0; while (left < A.size()) { auto pos_min = min_element(A.begin() + left + 1, A.end()); ...原创 2019-01-04 09:45:04 · 320 阅读 · 0 评论 -
914. 卡牌分组
914. 卡牌分组class Solution {public: bool hasGroupsSizeX(vector<int>& deck) { map<int, int>count_num; for (int i = 0; i < deck.size(); ++i) { count_num[deck[i]]++; } //寻找最...原创 2019-01-04 08:50:40 · 194 阅读 · 0 评论 -
962. 最大宽度坡
962. 最大宽度坡超时解法1:class Solution {public: int maxWidthRamp(vector&lt;int&gt;&amp; A) { int _slope=INTMAX_MIN; pair&lt;int,pair&lt;int,int&gt;&gt; num; int _max=*max原创 2018-12-25 09:37:51 · 266 阅读 · 0 评论 -
59.螺旋矩阵II
59.螺旋矩阵II附加调试class Solution {public: vector<vector<int>> generateMatrix(int n) { vector<vector<int>>matrix(n, vector<int>(n)); dis(matrix); int x = 0, y = 0; ...原创 2018-12-29 13:38:49 · 193 阅读 · 0 评论 -
58.最后一个单词的长度
58.最后一个单词的长度class Solution {public: int lengthOfLastWord(string s) { int word_len=0; bool on_off=1; for (int i = 0; i <s.length() ; ++i) { if(s[i]==' ') ...原创 2018-12-29 12:52:10 · 141 阅读 · 1 评论 -
20.有效的括号
20.有效的括号class Solution {public: bool isValid(string s) { vector<char> last; for (int i = 0; i <s.length() ; ++i) { if(s[i]=='('||s[i]=='['||s[i]=='{') ...原创 2018-12-29 12:15:15 · 133 阅读 · 0 评论 -
957. N 天后的牢房
957.N天后的牢房运行结果可以看出,按照题目要求,8位二进制数循环周期为14;class Solution {public: vector<int> prisonAfterNDays(vector<int>& cells, int N) { int j=0; dis(cells,j); vec...原创 2018-12-17 15:39:50 · 317 阅读 · 0 评论 -
641.设计循环双端队列
641.设计循环双端队列class MyCircularDeque {public: vector<int>data; int size; /** Initialize your data structure here. Set the size of the deque to be k. */ MyCircularDeque(int k) { size = k; }...原创 2018-12-27 15:22:34 · 215 阅读 · 0 评论 -
LeetCode-954. 二倍数对数组
954. 二倍数对数组解题思路:根据题目要求,数组A中包含正数、负数和0,所以我们将数组A进行分割排序,然后求解class Solution {public: bool canReorderDoubled(vector&amp;amp;lt;int&amp;amp;gt;&amp;amp;amp; A) { sort(A.begin(), A.end()); vector&amp;amp;lt;int&原创 2018-12-09 18:48:58 · 413 阅读 · 0 评论 -
953. 验证外星语词典
953. 验证外星语词典解题思路:根据题目要求,比较两个相邻字母是否按照order排序;创建(map)letter_orders,记录字典顺序;比较即可class Solution {public: bool isAlienSorted(vector&amp;amp;lt;string&amp;amp;gt;&amp;amp;amp; words, string order) { int min_letter_length = .原创 2018-12-09 18:02:07 · 1729 阅读 · 0 评论 -
LeetCode-973. 最接近原点的 K 个点
973. 最接近原点的 K 个点class Solution {public: vector&amp;lt;vector&amp;lt;int&amp;gt;&amp;gt; kClosest(vector&amp;lt;vector&amp;lt;int&amp;gt;&amp;gt;&amp;amp; points, int K) { //将所原创 2019-01-13 14:01:47 · 397 阅读 · 0 评论 -
976. 三角形的最大周长
976. 三角形的最大周长class Solution {public: int largestPerimeter(vector<int>& A) { sort(A.begin(), A.end()); int _min = 0, _max = 0; for (int i = A.size() - 1; i > 1; --i) { int firs...原创 2019-01-13 14:22:29 · 357 阅读 · 0 评论 -
264.丑数II
264.丑数II暴力解法,就是一直往下算,挨个判断是不是丑数,这种方式也就是能用在1000以内不会超时,达到题目要求的1690肯定超时;换个思想就是按照顺序求出每一个丑数;这里我们要保证求出丑数一定是按照从小到大排序;class Solution {public: int nthUglyNumber(int n) { if (n==1) re...原创 2019-01-18 16:30:57 · 241 阅读 · 0 评论 -
990. 等式方程的可满足性
990. 等式方程的可满足性class Solution {private: int Father[26],Rank[26];public: bool equationsPossible(vector<string>& equations) { for (int i = 0; i <26 ; ++i) { Fa...原创 2019-02-13 10:46:40 · 472 阅读 · 0 评论 -
34.在排序数组中查找元素的第一个和最后一个位置
34.在排序数组中查找元素的第一个和最后一个位置1、二分查找的简单应用class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { int left=0,right=nums.size()-1; int mid=(left...原创 2019-02-18 18:06:33 · 105 阅读 · 0 评论 -
213.打家劫舍II
213.打家劫舍IIPythonclass Solution: def rob(self, nums): """ :type nums: List[int] :rtype: int """ if len(nums)<=1: if len(nums)==0: ...原创 2019-01-23 16:43:05 · 122 阅读 · 0 评论 -
980.不同的路径III
980.不同的路径III确定好边界条件即可;class Solution {private: pair<int, int>start, end; int p = 1; int row, col; vector<vector<int>>grids;public: int uniquePathsIII(vector&l...原创 2019-01-23 14:04:35 · 203 阅读 · 0 评论 -
338.比特位计数
338.比特位计数对于二进制来说,所有2的幂次位1的个数都为1,所以我们先将所有2的幂次位置一,对于所有非2的幂次位来说规律就是res[j]=res[begin]+res[j-begin] (begin是j之前2的幂次位)class Solution {public: vector<int> countBits(int num) { vector<...原创 2019-01-22 09:38:22 · 229 阅读 · 0 评论 -
LeetCode-219.存在重复元素II
219.存在重复元素IIclass Solution {public: bool containsNearbyDuplicate(vector<int>& nums, int k) { if(nums.size()<=1) return false; map<int,int>nums_dict...原创 2019-01-16 14:02:18 · 119 阅读 · 0 评论 -
LeetCode-191.位1的个数
191.位1的个数class Solution {public: int hammingWeight(uint32_t n) { if(n==0)return 0; int ans=1; while (n>2){ ans+=n%2; n=n/2; } r...原创 2019-01-16 10:50:18 · 114 阅读 · 0 评论 -
LeetCode-5.最长回文子串
5.最长回文子串class Solution {public: string longestPalindrome(string s) { int len=s.length(); bool dp[len][len]; memset(dp,0, len); int max_len=1; int start=0...原创 2019-01-16 10:29:26 · 108 阅读 · 0 评论 -
LeetCode-978. 最长湍流子数组
LeetCode-978. 最长湍流子数组class Solution {public: int maxTurbulenceSize(vector<int>& A) { if (A.size()==0) return 0; int left=0,tmp=-1,res=1; for (int i ...原创 2019-01-21 10:58:17 · 378 阅读 · 0 评论 -
292.Nim游戏
292.Nim游戏只要n是4的倍数你必输class Solution {public: bool canWinNim(int n) { if(n==0) return false; if(n<=3&&n>=1) return true; if(n%4==0) ...原创 2019-01-20 17:16:38 · 114 阅读 · 0 评论 -
324.摆动排序
324.摆动排序class Solution {public: void wiggleSort(vector<int>& nums) { vector<int>ans(nums.size()); sort(nums.begin(),nums.end()); int index=0; for ...原创 2019-01-20 16:42:10 · 164 阅读 · 0 评论 -
975. 奇偶跳
975. 奇偶跳时间超限class Solution {public: int oddEvenJumps(vector&amp;amp;lt;int&amp;amp;gt;&amp;amp;amp; A) { int ans = 0; for (int i = 0; i &amp;amp;lt; A.size(); ++i) { if (check(i, A)) { cout &am原创 2019-01-14 17:19:23 · 667 阅读 · 0 评论 -
LeetCode-665.非递减数列
LeetCode-665.非递减数列class Solution: def checkPossibility(self, nums): """ :type nums: List[int] :rtype: bool """ cnt=1 n=len(nums) for i in r...原创 2019-01-24 09:11:38 · 179 阅读 · 0 评论 -
41.缺失的第一个正数
41.缺失的第一个正数class Solution {public: int firstMissingPositive(vector&lt;int&gt;&amp; nums) { sort(nums.begin(), nums.end()); auto pos = unique(nums.begin(), nums.end()); nums.erase(pos, nums....原创 2018-12-12 18:02:26 · 291 阅读 · 1 评论 -
448.找到所有数组中消失的数字
448.找到所有数组中消失的数字class Solution {public: vector&lt;int&gt; findDisappearedNumbers(vector&lt;int&gt;&amp; nums) { int len = nums.size(); sort(nums.begin(), nums.end()); auto pos=unique(nums.be...原创 2018-12-12 17:52:09 · 207 阅读 · 0 评论 -
831. 隐藏个人信息
831. 隐藏个人信息 class Solution {public: string maskPII(string S) { int pos = S.find('@'); if (pos!=string::npos) { return Email(S, pos); } else { return PhoneNumbers(S); } ...原创 2018-10-20 13:51:47 · 290 阅读 · 0 评论 -
866. 回文素数
866. 回文素数解法需要注意的两点: 判断是否是素数,和判断是否是回文,这有很多种方法,这里附上判断素数的一篇博客的连接,那里写的比较详细,大家可以按照需求使用求素数常用的几种方法 如果使用暴力解法,肯定会超时,超时的原因一定时循环次数过多,这里有一个理论:如果是一个长度是偶数,或者其本身是偶数的数,肯定不是素数(如果大家知道证明方法希望可以告知);按照这个理论构建我们自己的...原创 2018-10-20 12:53:59 · 266 阅读 · 0 评论 -
915. 分割数组
915. 分割数组按照题目要求,希望left数组越小越好根据样例可以知道,左右数组的分割点在整个数组最小值的附近先找到数组最小值的的位置,以此分割出左右初数组; 求出左数组中的最大值max_left,右数组中的最小值min_right; 比较max_left和min_right的大小,找到比max_left大的min_right; 在找到距离整个数组最小值最近的min_right...原创 2018-10-19 20:10:52 · 400 阅读 · 0 评论 -
885. 螺旋矩阵 III
在 R 行 C 列的矩阵上,我们从 (r0, c0) 面朝东面开始这里,网格的西北角位于第一行第一列,网格的东南角位于最后一行最后一列。现在,我们以顺时针按螺旋状行走,访问此网格中的每个位置。每当我们移动到网格的边界之外时,我们会继续在网格之外行走(但稍后可能会返回到网格边界)。最终,我们到过网格的所有 R * C 个空间。按照访问顺序返回表示网格位置的坐标列表。**...原创 2018-10-15 22:20:55 · 230 阅读 · 0 评论 -
LeetCode 三数之和
针对三数之和,我将原来的nums数组分为正负两个数组,通过两层for循环,得到所有和为零的三元数组 class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> ans; vect...原创 2018-06-14 10:14:04 · 358 阅读 · 0 评论 -
861. 翻转矩阵后的得分
861. 翻转矩阵后的得分#include <vector>#include <iostream>using namespace std;class Solution {public: int matrixScore(vector<vector<int>>& A) { int xlen = A.size(); ...原创 2018-10-14 22:05:09 · 149 阅读 · 0 评论