
leetcode
文章平均质量分 54
mEihUAlU233
这个作者很懒,什么都没留下…
展开
-
LeetCode 910 题解
https://leetcode.com/problems/smallest-range-ii/description/题目大意:同908,只是现在只能+k 或者-k,问最小的差距是多少。解题思路:先将A排序,考虑 两种变化 (up,down) 和 (down,up) 前者显然优于后者。所以对于A数组的最小值,最大值,肯定是min+K , max-K。 对于每一个 A[i] ,A[i+1]...原创 2018-09-25 11:45:03 · 828 阅读 · 1 评论 -
LeetCode 875 题解
875. Koko Eating Bananas题目大意:有n袋香蕉,每袋的数目不一,现在要在H小时内吃完,问每小时最少要吃多少个香蕉可以完成。注:每袋香蕉的最后几个即使不够吃,吃完了也要花一小时。解题思路:二分class Solution {public: int minEatingSpeed(vector<int>& piles, int H) {...原创 2018-07-24 16:54:16 · 1427 阅读 · 0 评论 -
LeetCode 858 题解
题目大意:一个正方形的空间,边长为p,从左下角向右斜上方射出一条光线,形成的三角形的另外一边为q,问反射多次后,光线第一次打到角上的位置。解题思路:将正方形拉长,求p,q的最小公倍数。注意q为0的情况。原创 2018-07-06 17:26:31 · 339 阅读 · 0 评论 -
LeetCode 874 题解
874. Walking Robot Simulation题目大意:二维空间,从原点出发 ,4个方向,走, 路上有障碍,有障碍的地方不能走。解题思路:模拟#define mp make_pair/*0north 1east 2south 3west*/int dx[]={0,1,0,-1};int dy[]={1,0,-1,0};class Solution {pu...原创 2018-07-24 16:14:06 · 655 阅读 · 0 评论 -
LeetCode 860 题解
题目大意:卖lemon,5块钱一个,现在有3种面值的钞票分别为10,20,5,开始的时候没有找零的钱,问能否让每个人都有找零。解题思路:模拟,注意顺序不能变。原创 2018-07-06 16:58:30 · 454 阅读 · 0 评论 -
LeetCode 859 题解
题目大意:两个字符串,只能而且必须交换一次两个字符,问能否让两个串一样。解题思路:遍历,看到不一样的就让他们交换,注意必须要交换一次,如果两个串本身就一样那么要看两个串里面有没有相同的字母。原创 2018-07-06 16:25:07 · 429 阅读 · 0 评论 -
LeetCode 862 题解
题目大意:求满足数组内,连续和至少为K的一个序列,使得这个序列最短,求最短的长度。解题思路:P[x]表示数列的前缀和,考虑点 x1 ,x2 若 x1<x2 ,且P[x1]>=p[x2],那么选择x2肯定来的比x1短;考虑y1<y2,若 满足 y1 ,y2都是x点,那么y1肯定比y2好。维护一个双端队列,每次入队前 和 尾端的P[x]比较,若比原来的小则弹出原来的值;和队首比较,若满足差值至少为K,则将队首的值出列。原创 2018-07-06 16:03:03 · 1382 阅读 · 0 评论 -
LeetCode 872 题解
872. Leaf-Similar Trees题目大意:给你两颗二叉树,问你他们从左往右的所有叶子节点是否一样解题思路:直接递归遍历,所有的叶子class Solution {private: void dfs(TreeNode* root,vector<int> &vt) { if(root==NULL) return ;...原创 2018-07-23 17:09:21 · 463 阅读 · 0 评论 -
LeetCode 861 题解
861. Score After Flipping Matrix题目大意:一个矩阵由01组成,现在要么翻转整行要么翻转整列,每一行组成一个二进制的数,希望数字最大。解题思路:首先意识到 二进制数的最高位置,比后面所有位都是1来的还要大,所以必须保证第一列全为1,之后保证每一列1的个数最大即可。class Solution {public: int matrixScor...原创 2018-07-16 17:22:12 · 332 阅读 · 0 评论 -
LeetCode 856 题解
856. Score of Parentheses题目大意:一个仅有 ( ) 两种符号的字符串 一个 ()代表 1 , ( (A) ) 表示 2*A , (A) (B) 表示 A+B,求一个字符串表示的内容解题思路:这么思考 对于 一个 ( ) 包括的字符串 如果是 ( (....) ) 这样的形式 那么 结果等于 2* (....) 这个的结果,就等价于求一个子问题,所以考虑实用一个递...原创 2018-07-16 17:01:44 · 887 阅读 · 1 评论 -
LeetCode 848 题解
848. Shifting Letters题目大意:一个字符串,给你一个向右移动的步数,问移动之后的字符串长什么样子。解题思路:模拟原创 2018-06-10 16:20:55 · 378 阅读 · 0 评论 -
LeetCode 849 题解
849. Maximize Distance to Closest Person题目大意:0表示没有人,1表示有人,问现在选一个位置,问和相邻人的最大距离能是多少。解题思路:遍历一遍,两个1的距离除以2,注意处理一下头尾的情况。原创 2018-06-10 16:08:32 · 883 阅读 · 0 评论 -
LeetCode 757 题解
757. Set Intersection Size At Least Two题目大意:给你很多区间,求一个最小的集合,使得集合中的点至少能包括每个区间内的两个点。解题思路:1.首先考虑区间包涵的情况,例如 [2,10] 和 [3,7] ,此时[3,7]满足的话 [2,10]肯定满足,所以区间[2,10]可以不考虑,2.之后,贪心的考虑剩下的每个区间,尽量选每个区间的最后两个点。原创 2018-06-15 10:37:19 · 415 阅读 · 0 评论 -
LeetCode 765 题解
765. Couples Holding Hands原创 2018-06-08 11:50:12 · 563 阅读 · 0 评论 -
LeetCode 775 题解
775. Global and Local Inversions题目大意:给出了一个序列,两个定义一个是全局逆序,一个是局部逆序,问这个序列能否保证全局逆序和局部逆序数目相同。全局逆序和逆序的概念一样,局部逆序是指连续的两个数i,i+1 A[i]>A[i+1] 就是逆序。解题思路:考虑暴力做法,每个数字只能比其后面的数字大的个数不能大于1,每个数字不能比其前面的数字小的个数大于1,复杂度是n^2,暴力的做法会超时。原创 2018-05-31 17:35:39 · 464 阅读 · 0 评论 -
LeetCode 857 题解
857. Minimum Cost to Hire K Workers题目大意:n个工人有不同的能力值,和 需要的最低工资,现在需要至少m个工人, 其中这m个工人需要满足他们的最低工资,而且他们的能力的比值和工资的比值要相等。问m个工人至少要花费多少钱。解题思路:考虑到 能力的比值要等于工资的比值,即 Wa/Wb = Qa/Qb <=>Wa / Qa = Wb/Qb ,...原创 2018-07-19 17:09:02 · 1340 阅读 · 0 评论 -
LeetCode 863 题解
863. All Nodes Distance K in Binary Tree题目大意:一颗二叉树,每一个节点都是不同的一个数字,现在问距离k节点距离是d的节点是哪些。解题思路:先从根dfs一遍,将树变成图。之后从要求的点bfs即可。#define mp make_pairclass Solution {public: vector<int> vt[100...原创 2018-07-19 17:21:22 · 1091 阅读 · 2 评论 -
LeetCode 908 题解
https://leetcode.com/problems/smallest-range-i/description/题目大意:给定数组A,现在可以选择 一个x ,x的值在[-k,k]之间可以选择。A中的每项可以选择一个x来相加,问新数组B的最大最小值的差最小是多少。解题思路:其实就是比较A的最大最小值和 2k之间的关系class Solution {public: int...原创 2018-09-25 09:57:32 · 470 阅读 · 0 评论 -
LeetCode 902 题解
https://leetcode.com/problems/numbers-at-most-n-given-digit-set/description/题目大意:给你 1-9 之间的数字,可以重复使用组合,问小于N的组合数。解题思路: N的长度为n,k为可以使用的数的个数,当要组合的数长度小于n的时候,组合数目为 pow(k,i) (i<n) 次。当长度为n的时候,dp[i] 表...原创 2018-09-10 14:45:50 · 580 阅读 · 0 评论 -
LeetCode 901 题解
https://leetcode.com/problems/online-stock-span/description/题目大意:依次给你n天的股票价格,问到当前天价格前连续多少天的价格都是低于这个价格的。解题思路:标准解法采用栈的形式解决,我的做法类似栈,但是需要消耗多的空间不太好。dp[i] 记录第i天的结果,如果当前天的价格大于等于第i天则,dp[x] += dp[i] ,且可以往前...原创 2018-09-10 14:39:31 · 612 阅读 · 0 评论 -
LeetCode 900 题解
https://leetcode.com/problems/rle-iterator/description/题目大意:一个字符串偶数位i 表示 i+1的奇数位的数字出现的次数,例如 380921 表示的其实是字符串 88811。现在每次删掉这个字符串的前k位,问删掉的最后一个数字是多少,不存在输出-1。解题思路:1.最开始想这复原字符串后,每次删除记录好新的起点位置,直接在数组中就能...原创 2018-09-10 14:31:51 · 458 阅读 · 0 评论 -
LeetCode 908 题解
https://leetcode.com/problems/super-palindromes/description/题目大意:找数组中 最大连续的 只有两个不同数字的序列。解题思路:暴力查找,稍微剪枝了一下,如果已经判断到了末尾就结束,水过去了。标准解法应该采用滑动窗口class Solution {public: int totalFruit(vector<in...原创 2018-09-17 11:58:38 · 409 阅读 · 0 评论 -
LeetCode 907 题解
https://leetcode.com/problems/sum-of-subarray-minimums/description/题目大意:求连续子序列中最小值的和。解题思路:以每个位置向左和右查找子序列,子列的数目*A[i] 为答案,子列的数目为 左边能到的最远距离*右边最远的距离。暴力查找会超时,可以使用栈来记录前序的情况,后序的情况也可以记录。#define mod 1...原创 2018-09-17 11:50:50 · 1136 阅读 · 0 评论 -
Leetcode 899 题解
题目大意:一个字符串,可以操作前K个字符移动到末尾,问字典序最小的的情况。解题思路:考虑K>1的时候,排序即可类似冒泡可以将最小的冒上来。如果K为1,把字符串看成一个环,我们只能从某一点将这个环给切开。class Solution {public: string orderlyQueue(string S, int K) { string ans=S; ...原创 2018-09-03 17:32:24 · 319 阅读 · 0 评论 -
LeetCode sql语句 学习专题【Hard】
题目链接如下: https://leetcode.com/problemset/database/ 目录 601. Human Traffic of Stadium601. Human Traffic of Stadium和前面有一题类似,求超过连续3天客流量大于100的记录# Write your MySQL query statement belowsele...原创 2018-08-21 20:55:51 · 312 阅读 · 0 评论 -
Leetcode 892 题解
892. Surface Area of 3D Shapes题目大意:求一个N*N的 3D模型的表面积解题思路:考虑每一个1*1位置上的表面积,输入的为vector可以转换到数组中存放class Solution {public: int surfaceArea(vector<vector<int>>& g) { int n...原创 2018-08-28 13:46:57 · 496 阅读 · 0 评论 -
LeetCode sql语句 学习专题【Medium】
题目链接如下: https://leetcode.com/problemset/database/目录626. Exchange Seats178. Rank Scores180. Consecutive Numbers184. Department Highest Salary177. Nth Highest Salary626. Exchange Seats...原创 2018-08-07 15:35:23 · 471 阅读 · 0 评论 -
LeetCode 880 题解
880. Random Pick with Weight题目大意:交互题,每个索引对应一个权重,根据权重选择每个索引解题思路:使用rand函数,将每个索引对应的权重扩展开来 ,对应到数轴上。可以二分查找随机数在哪个区间里,也可以直接暴力查找。需要注意随机出来的数字要+1,因为0不包括在区间内,否则权重就变化了。int ans[100005];int n;class Soluti...原创 2018-07-27 17:08:09 · 452 阅读 · 0 评论 -
LeetCode 876 题解
876. Middle of the Linked List题目大意:返回一个list中间的元素,如果有两个则返回第二个;解题思路:利用两个指针,一个步长为1一个为2,当2走到尾端,第一个走到的就是答案;class Solution {public: ListNode* middleNode(ListNode* head) { if(head==NUL...原创 2018-07-29 15:59:19 · 859 阅读 · 0 评论 -
LeetCode 877 题解
877. Stone Game题目大意:有一堆石头,两个人玩游戏每次只能拿走这堆石头开头或者结尾,问先手能否拿到更多价值的石头。解题思路:考虑石头有偶数堆,价值总和总为奇数,所以肯定能区分出胜负,而且每个人拿到的石头的堆数是一样的。假设是这样的一个序列 1,1,2,1 先手总能保证自己拿到2的石头,所以先手必胜。...原创 2018-07-29 15:57:14 · 2038 阅读 · 0 评论 -
LeetCode 878 题解
878. Nth Magical Number题目大意:问第N个能整除A或者B的数 是多少。解题思路:能整除A或者B的数,肯定是A或者B的整数倍,所以LCM(A,B)肯定满足,那么将会出现一个循环,算出循环后暴力。typedef long long ll;typedef unsigned long long ull;#define mp make_pairconst int ...原创 2018-07-29 15:50:45 · 525 阅读 · 0 评论 -
LeetCode 761 题解
761. Special Binary String原创 2018-06-14 11:14:29 · 419 阅读 · 0 评论 -
LeetCode 766 题解
766. Toeplitz Matrix题目大意:问一个数组是不是从左上角到右下角的一条线上的数字都一样解题思路:直接模拟原创 2018-06-07 11:41:23 · 309 阅读 · 0 评论 -
LeetCode 784 题解
784. Letter Case Permutation题目大意:不改变原来字符的位置,输出一个字符串里的字母所有大小写的组合。解题思路:递归深搜原创 2018-05-29 10:11:00 · 893 阅读 · 0 评论 -
LeetCode 844 题解
844. Backspace String Compare题目大意:#代表回退键,问两个字符串最后是否一样解题思路:模拟原创 2018-06-04 17:50:31 · 681 阅读 · 0 评论 -
LeetCode 845 题解
845. Longest Mountain in Array题目大意:一个数组里最长连续驼峰型的长度。解题思路:以每个数为中心向左右分别枚举,记录最长的长度。原创 2018-06-04 17:30:14 · 826 阅读 · 0 评论 -
LeetCode 846 题解
846. Hand of Straights题目大意:一个数组,和一个窗口w问能否将数组分成k组使得每组里数的个数都是w且数字连续。解题思路:排序后,贪心的找到第一组的开头,之后去掉需要的数字,剩下的第一个就是第二组数的开头依此类推。原创 2018-06-04 17:08:05 · 860 阅读 · 0 评论 -
LeetCode 847 题解
847. Shortest Path Visiting All Nodes题目大意:N个点组成的无向图,选一个起点遍历完所有点的最小步数。解题思路:这题难点在于,走过的点可以重复走,如果直接暴力搜索不能确定停止的条件。考虑用Bitset来表示目前已经遍历过的点的状态,和此时的点 即 dp[i][status]来表示到目前记录目前为止的最小距离,可以用BFS的方式搜索出遍历完所有点的最小距离。原创 2018-06-04 16:41:47 · 1622 阅读 · 0 评论 -
LeetCode 785 题解
785. Is Graph Bipartite?题目大意:问无向图能否分成两部分,使得两部分的点互相不是直接相连的。解题思路:从一个点出发染色即可,注意考虑存在多张图的情况。原创 2018-05-28 17:43:17 · 579 阅读 · 0 评论 -
LeetCode 840 题解
题目大意:在n*m的格子里找到满足 行列对角线和相等的 3*3矩阵的个数。且只能由1-9组成。解题思路:暴力原创 2018-05-28 16:59:50 · 582 阅读 · 0 评论