leetcode 1 A+B problems】的更多相关文章

描述: 给个数组和整数t,一串整数中,存在两个数其和等于t,求这两个数的索引. 解决: 想要快,用个哈希储存曾经出现过的数的索引. vector<int> twoSum(vector<int>& nums, int target) { int size = nums.size(); unordered_map<int, int> id; ; i < size; i++) { int o = target - nums[i]; auto fi = id.fi…
463. Island Perimeterhttps://leetcode.com/problems/island-perimeter/就是逐一遍历所有的cell,用分离的cell总的的边数减去重叠的边的数目即可.在查找重叠的边的数目的时候有一点小技巧,就是沿着其中两个方向就好,这种题目都有类似的规律,就是可以沿着上三角或者下三角形的方向来做.一刷一次ac,但是还没开始注意codestyle的问题,需要再刷一遍. class Solution { public: int islandPerime…
题目网址:https://leetcode.com/contest/2/problems/elimination-game/ 题意: 给定一个从1到n的数列,第一次从最左边开始,每隔一个淘汰一个数字.然后从剩下的数字中,最右边的数字开始,每隔一个淘汰一个数字.重复上述步骤,求最后剩下的那个数字. 解析:是一个模拟题.只需要确定每趟淘汰赛开始时的数字即可(最后一个数字就是最后一趟淘汰赛的开始的数字). 假设第i趟开始的数字为start,此时等差数列的差(distance)为2^i,数字个数为n/(…
https://leetcode.com/contest/6/problems/trapping-rain-water-ii/ 看到这题,我很高兴,因为我做过!哈哈!其实我现在也写不出来,知道大概思想. 这题是google apactest 2017 round A 的第二题.https://code.google.com/codejam/contest/11274486/dashboard#s=p1 然后,简单一次调试,就ac了.不知道这算不算作弊,做完,我就看见什么instruction,说…
https://leetcode.com/contest/6/problems/queue-reconstruction-by-height/ 分析:每个表示成(a,b)的形式,其实找第一个,就是b为0,a最小的那一个,然后一次更新小于等于a的节点的序号b,就是b--,然后重复上面的过程. 我刚开始是按a排序,然后再按b排序,使用set来做,发现我还要修改set元素的值,发现不能修改,(这里还是对数据结构掌握的不透彻),左后使用vector来做,不断的进行排序,来维护顺序.代码写的有点乱,感觉还…
https://leetcode.com/contest/6/problems/convert-a-number-to-hexadecimal/ 分析:10进制转换成16进制,不能用库函数,刚开始,我被误导,一直到考虑负数怎么表示成补码,其实,这个系统已经帮我们做好了,计算机里面就是二进制补码表示的,我们需要做的,就是把数字表示成32位二进制,然后每四位映射成一个16进制数字,最后去掉前导0,然后就ok. 注意:不要被什么正数,负数,0,如何表示成二进制补码吸引注意力. string toHex…
https://leetcode.com/contest/5/problems/frog-jump/ 这个题目,还是有套路的,之前做过一道题,好像是贪心性质,就是每次可以跳多远,最后问能不能跳到最右边,一会找一下这道题(找到了,就是这个55. Jump Game).然后这道题,差不多是相同的意思,但是每次只能跳3个或者2个,跳了之后还要判断那个位置有没有石头,然后还要记录上一次跳的间隔,然后我就想到了要用map做一个位置到index的映射,主要用于o(1)的查找,可以用unordered_map…
https://leetcode.com/contest/5/problems/binary-watch/ 这个题应该是这次最水的,这个题目就是二进制,然后是10位,最大1024,然后遍历,找二进制里面1的个数为满足要求的,然后判断是否超限,题目说的很清楚,小时0到11,分钟0到59,然后转化成要求的格式就行了. class Solution { public: vector<string> work(int k) { vector<string> res; ) return re…
https://leetcode.com/contest/5/problems/nth-digit/ 刚开始看不懂题意,后来才理解是这个序列连起来的,看一下第几位是几.然后就是数,1位数几个,2位数几个,3位数几个,int范围2e10,所以处理到11位数差不多,仔细算一下可以更少,然后先找到是几位数,然后除以位数,找到这个数是多少,取余看是第几位,然后就可以了.我预处理每位的个数和开始的位置. class Solution { public: ]; ]; int init(int n) { d[…
在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 输出: 4 说明: 你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度. 大家看到这道题很高兴的调用了sort(),也有手搓快排的那么时间复杂度都在O(nlgn) 我们仔细想想快排的思想 本质上是在划分 那么我们先…
https://leetcode.com/contest/weekly-contest-79/problems/binary-tree-pruning/ -- 814 from leetcode tree traverse (post traverse) left right and root the model void traverse(node){ if(node.left!=null) traverse(node.left); if(node.right!=null) traverse(…
https://leetcode.com/contest/leetcode-weekly-contest-16a/problems/find-permutation/ 设原本的数字是0,那么按照它的DI来模拟,D就减1,I就+1 比如DDIIDI,就是0.-1.-2.-1.0.-1.0 那么找到第一个最小的,现在是-2,那么把它安排去第一个没出现过的数字,也就是1了, 然后,它左边的全部,就要确定了,3.2.1 然后再把[4, en]继续这样模拟. 需要注意的是,遇到一个I,就马上停止了,不然D…
[题目链接]:https://leetcode.com/contest/leetcode-weekly-contest-26/problems/split-array-with-equal-sum/ [题意] 让你把一段序列去掉3个元素,然后分成4个部分; 要求这4个部分的和相同; 问你可不可能; [题解] 先枚举要删除的3个元素中的中间那个元素j; 然后把整个序列分成左边和右边两个部分; 然后再左边的序列中枚举i; 然后把0..j-1分成0..i-1和i+1..j-1两个部分; 然后看这两个部…
[题目链接]:https://leetcode.com/contest/leetcode-weekly-contest-26/problems/friend-circles/ [题意] 告诉你任意两个人是不是朋友. 问你最后有多少个连通块; [题解] 裸并查集. [完整代码] #include <bits/stdc++.h> using namespace std; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #d…
[题目链接]:https://leetcode.com/contest/leetcode-weekly-contest-26/problems/longest-uncommon-subsequence-ii/ [题意] 字符串变成多个了; (不止两个) 让你求最长不公共子序列 [题解] 因为最大长度为10; 所以把每个长度有哪些字符串记录下来; 然后从字符串长度由大到小枚举len; 假设这个答案序列为len长度的某个字符串; 然后看看len长度的字符串有没有和它一样的字符串(即出现两次及以上)…
[题目链接]:https://leetcode.com/contest/leetcode-weekly-contest-26/problems/longest-uncommon-subsequence-i/ [题意] 让你求两个字符串的最长不公共子序列的长度; 即这个序列是两个字符串中的一个的子序列; 同时要求这个序列不是所有其他任意一个字符串的子序列; [题解] 两个字符串相同就无解; 否则输出两个字符串的长度中较大者; [完整代码] #include <bits/stdc++.h> usi…
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.com/contest/weekly-contest-114/problems/verifying-an-alien-dictionary/ 题目描述 In an alien language, surprisingly they also use english lowercase letters,…
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 日期 题目地址:https://leetcode.com/contest/weekly-contest-110/problems/range-sum-of-bst/ 题目描述 Given the root node of a binary search tree, return the sum of values of all nodes wi…
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 参考资料 日期 题目地址:https://leetcode.com/contest/weekly-contest-107/problems/long-pressed-name/ 题目描述 Your friend is typing his name into a keyboard. Sometimes, when typing a character…
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 栈 单指针 双指针 日期 题目地址: https://leetcode.com/contest/weekly-contest-105/problems/reverse-only-letters/ 题目描述 Given a string S, return the "reversed" string where all characters…
线性表: 线性表是最简单,最基本,最常用的数据结构.线性表中的数据元素之间存在一对一的关系.即:除了第一个元素,其他元素前面有且只有一个元素:除了最后一个元素,其他元素后面有且只有一个元素.生活中的例子:糖葫芦. (图片来自网络,侵删) 分类: 根据数据存储结构的不同,大体上可以分为:顺序表,链式表. 顺序表: 在内存中用一块地址连续的空间存放线性表的数据元素,因此查找元素时非常方便.增加或删除元素时,需要移动剩下的元素. 链式表: 不强求用连续的内存空间存放线性表的数据元素.除了基本的数据元素…
n位二进制,求不包含连续1的二进制(n位)数字个数. http://www.geeksforgeeks.org/count-number-binary-strings-without-consecutive-1s/ 也可以令f[i],表示共i位的二进制数字中,不包含连续1的二进制(i位)数字的个数. f[i]的组成有两部分: 最高位为1:只有当次高位为0,且满足条件的二进制数字个数,即 f[i-2] 最高位为0:次高位为0或1且满足条件的数字个数,即f[i-1] 得: f[i] = f[i-2]…
题目链接 https://leetcode.com/contest/weekly-contest-96/problems/reachable-nodes-in-subdivided-graph/ 解题思路 1)题目要求,经过m步后,可以到达的点,等价于求有多少点距离起点的最短距离小于等于m,即这是一个单源最短路径问题,使用djstra算法 复杂度 时间 o(eloge) 空间复杂度o(e). e为边数 本解决方案的注意点 1)计数时,节点和边上的点要分开计数,防止重复计算节点 2)使用优先队列保…
All LeetCode Questions List 题目汇总 Sorted by frequency of problems that appear in real interviews. Last updated: October 2, 2017Google (214)534 Design TinyURL388 Longest Absolute File Path683 K Empty Slots340 Longest Substring with At Most K Distinct C…
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times. You may assume that the array is non-empty and the majority element always exist in the array. Credits: Special thanks to @…
195. Tenth Line -- 第十行 How would you print just the 10th line of a file? Solution: awk 'NR==10' file.txt 194. Transpose File -- 转置文件 Given a text file file.txt, transpose its content. You may assume that each row has the same number of columns and ea…
dfs 栈溢出,bfs超时,用dfs非递归就不溢出了,前后写了1一个星期class node { int i; int j; public node(int i1,int j1) { i=i1; j=j1; } } public class Solution { public void solve(char[][] board) { int len1=board.length; if(len1<=0)return; int len2=board[0].length; if(len1<=2||l…
1.超时的,效率太低 public class Solution { public int jump(int[] A) { int len=A.length; int d[]=new int[len]; d[0]=0; for(int i=1;i<len;i++) { d[i]=1; int j; for(j=1;j+i<len&&j<=A[j];j++) { d[i+j]=Math.max(d[i]+1,d[j+i]); } if(j+i==len) return d[…
1.从外围搜索O,深度搜索出现了 Line 35: java.lang.StackOverflowError Last executed input: ["OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO public class Solution { public void solve(char[][] board) { if(board.length==0) return; int len1=board.length; int len2=boar…
https://www.cnblogs.com/grandyang/p/7404777.html 博客中写的<=2,实际上<=1也是可以的 相当于判断一个大指针内所有子字符串是否可能为回文 class Solution { public: int countSubstrings(string s) { int length = s.size(); ; vector<vector<,vector<,false)); ;i <= length;i++){ ;j <=…