![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
哦豁
去追啊
这个作者很懒,什么都没留下…
展开
-
292. Nim Game
不管怎样走,都可以赢才返回true?所以只要找到一种会输的就是false? i am not sure....oh,,不是这样的 看了solution,其实只要第二个人剩下的数是4的倍数,那么第一个人肯定会输,因为他至多remove3个,而且观察发现 1 , 2 , 3 都是 % 4的余数,所以我们只要判断 n 是否是 4 的倍数,如果是那么第一个人一定会输得(假装自己特别明白,其实并不是特别特...原创 2018-09-04 11:14:51 · 86 阅读 · 0 评论 -
258. Add Digits
同余公式 dr( n ) = 1 + ( n - 1 ) % 9 digit root class Solution { public int addDigits(int num) { return 1 + ( num - 1 ) % 9 ; } }原创 2018-09-28 22:11:34 · 76 阅读 · 0 评论 -
748. Shortest Completing Word
很巧妙啊,,用素数乘积能否被整除来表征是否可以将字符全部包含 class Solution { private static final int[] prime = { 2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , 29 , 31 , 37 , 41 , 43 , 47 , 53 , 59 , 61 , 67 , 71 , 73 , 79 , 83...原创 2018-09-28 22:49:37 · 98 阅读 · 0 评论 -
655. Print Binary Tree
数组的column应该是树的高度h * 2 + 1,row就是树的高度 following is the best solution I have ever seen: # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val =...原创 2019-03-31 17:51:14 · 92 阅读 · 0 评论 -
89. Gray Code
class Solution { public List<Integer> grayCode(int n) { List<Integer> res = new ArrayList<>(); for( int i = 0 ; i < 1 << n ; i ++ ) res.add(...原创 2019-05-19 18:05:36 · 113 阅读 · 0 评论 -
160. 相交链表
在评论区看到的很优雅的解法:定义两个指针分别移动,当其中一个指针如pa移动到链表末尾时指向另一链表的头部headB ,再继续移动,当指针pb移动到末尾时使其指向headB,经过这样的操作,就消除了长度差,两指针当前位置与相交节点之间的距离相同 果然优雅的解法不仅需要计算机技能,还需要数学知识==,以及智商== # Definition for singly-linked list. # cl...原创 2019-06-16 09:54:22 · 88 阅读 · 0 评论 -
53. 最大子序和
核心思路就是看当前最大和大于0还是小于0,如果大于0就并入最大子序列和的候选集,否则就以当前的元素为新序列 思路一:动态规划dp nums[i-1]记录当前最大和,若其大于0就可以组成最大序列的候选项,若小于0则nums[i]为新序列 class Solution(object): def maxSubArray(self, nums): """ :...原创 2019-06-11 16:22:39 · 104 阅读 · 0 评论 -
26. 删除排序数组中的重复项
快慢指针 class Solution(object): def removeDuplicates(self, nums): """ :type nums: List[int] :rtype: int """ l = len(nums) i = 0 for j in rang...原创 2019-06-11 16:45:28 · 88 阅读 · 0 评论 -
88. 合并两个有序数组
官方题解三种思路 思路一:将两数组作为一个数组进行排序 nums1[:] = sorted(nums1[:m] + nums2) 思路二:双指针从前往后,需要额外的空间 思路三:从后往前,最后不要忘了将nums2剩余的元素copy过去 class Solution(object): def merge(self, nums1, m, nums2, n): ...原创 2019-06-11 17:05:57 · 103 阅读 · 0 评论 -
54. Spiral Matrix
解法一:模拟 实现了按照 顺时针 方向遍历,通过dr、dc数组内元素的顺序实现,第一个元素是[0,1]就会向右不断遍历,第二个元素是[1,0]就会向下遍历,第三个元素是[0,-1]就会向左遍历,第四个元素是[-1,0]就会向上遍历,右下左上就是顺时针的方向。每一次只要下标超出范围,移动方向下标就会加一以改变遍历的方向。 class Solution(object): def spir...原创 2019-07-21 10:49:50 · 146 阅读 · 0 评论 -
124. Binary Tree Maximum Path Sum
max_gain(特定节点)=节点.val + 子树中较大的值(一个子树),表示包含该节点在内的最大值 但是整棵树的最大值可能并不包括根结点在内,所以需要检查是继续当前路径还是更改新路径,新路径需要检查node.val + left + right来决定是否更新 # Definition for a binary tree node. # class TreeNode(object): # ...原创 2019-07-21 19:58:07 · 72 阅读 · 0 评论 -
4. Median of Two Sorted Arrays
根据题解里面的一个思路写的,啊 感觉 困难 等级的题,好难做==,代码也好难写 有许多需要注意的点:最精妙的就是 利用二分法 找两数组的中间位置: m1 = left + (right - left) // 2 m2 = k - m1 if nums1[m1] < nums2[m2 - 1]: ...原创 2019-07-22 10:48:28 · 82 阅读 · 0 评论 -
4. Longest Common Prefix
找出一组字符串的最长公共前缀 解法一:水平扫描 从前往后枚举字符串的每一列,先比较每个字符串相同列的字符(即不同字符串相同下标的字符)然后再进行对下一列的比较。 class Solution(object): def longestCommonPrefix(self, strs): """ :type strs: List[str] ...原创 2019-07-23 11:46:30 · 82 阅读 · 0 评论 -
149. Max Points on a Line
题解里的高赞答案:可以运行通过 from collections import * class Solution: def maxPoints(self, points: List[List[int]]) -> int: def calc(points, i): # defaultdict是collections里的一个类,就是带有默认值...原创 2019-10-08 18:01:22 · 110 阅读 · 0 评论 -
421. Maximum XOR of Two Numbers in an Array
https://leetcode-cn.com/problems/maximum-xor-of-two-numbers-in-an-array/solution/li-yong-yi-huo-yun-suan-de-xing-zhi-tan-xin-suan-f/ 两个数相同位置上1、0不同的位数越多,且越靠近高位,最后的结果越大 1. 异或运算就是二进制下不应用进位的加法 2. 如果...原创 2019-10-09 15:16:36 · 109 阅读 · 0 评论 -
451. Sort Characters By Frequency
实现了我一直的想法,就是先用map存储,再用list存储,相当于先将字母作为索引记录下出现的次数Map<Character,Integer> map = new HashMap<>();,再将次数作为索引记录出现该次数的字母 List<Character> []bucket = new List[ s.length() + 1 ]; class Solut...原创 2018-09-27 23:00:58 · 90 阅读 · 0 评论 -
783. Minimum Distance Between BST Nodes
一开始没看懂题==,原来是求树中各元素最小距离,排序=》中序遍历 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(N...原创 2018-09-16 08:22:01 · 109 阅读 · 0 评论 -
553. Optimal Division
感觉应该是动归或者什么思想之类的吧,emmm,看了disscussion之后,是一种比较tricky的想法, 就是要想实现最优化其实不管数字是什么,加括号的位置都是一样的,从第二个到最后一个都在括号里面,都作为分母 class Solution { public: string optimalDivision(vector<int>& nums) { ...原创 2018-09-04 16:50:54 · 89 阅读 · 0 评论 -
889. Construct Binary Tree from Preorder and Postorder Traversal
根据前序和后序重建二叉树,不会,哭:),discussion /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(N...原创 2018-09-04 20:21:51 · 243 阅读 · 0 评论 -
小细节
今天突然发现了一个很重要的小细节== int k = 2; for( int i = 0 ; i < 64 ; i += k <<1 ){ cout<< k <<" "; cout<< i <<endl; } int k = 2; for( int ..原创 2018-09-07 19:52:15 · 89 阅读 · 0 评论 -
647. Palindromic Substrings
我觉得回文子串就是我的一道坎。。。 这道题的话我想用从中间位置向两边搜索的思想,这样的话就需要考虑串的长度奇偶性的问题。 我试着写了一下处理奇偶的问题,但是一直报错,,,看了一下别人的代码,真是正确又优雅啊。。。。 (错误的)放在这警醒一下自己下次不要再写错了== class Solution { public: int countSubstrings(string s) {...原创 2018-09-05 11:01:18 · 349 阅读 · 0 评论 -
260. Single Number III
这次是有两个数字只出现了一次,上次只出现了一次那个一个思路是用异或做的,还一个思路是根据i和i-1的对应关系改变值的正负(是在数组的值都在下标范围内才可以这样做),这次这个嘛,let me think think,还要求线性时间复杂度,常数空间复杂度 用Map的话,就不是常数空间复杂度了吧,, 没想出来,看了一下discussion,真是,,惊为天人啊,,,想法好奇,使用了两次异或XOR ...原创 2018-09-05 12:29:04 · 77 阅读 · 0 评论 -
856. Score of Parentheses
括号匹配,按照运算规则计算,不会,,,看了discussion还是不太会诺。。。 vector没有初始化的话会出很多错误!!! Approach1: class Solution { public: int scoreOfParentheses(string S) { vector<int> res( 30 , 0 ); int l = ...原创 2018-09-05 16:04:53 · 106 阅读 · 0 评论 -
812. Largest Triangle Area
Approach1: class Solution { public: double findMax( vector<int> a , vector<int> b ,vector<int> c){ return 0.5 * abs( a[0] * b[1] + b[0] * c[1] + c[0] * a[1] - a...原创 2018-09-05 16:37:11 · 134 阅读 · 0 评论 -
485. Max Consecutive Ones
最简单的思路就是从头开始统计 我的跑好慢,,,如下: class Solution { public: int findMaxConsecutiveOnes(vector<int>& nums) { int l = nums.size(); int res = 0; int index = 0; wh...原创 2018-09-05 16:58:43 · 90 阅读 · 0 评论 -
695. Max Area of Island
出去走了一下午,被拉去做苦力,累死了,刚回来。 这道题应该是裸的DFS或者BFS吧。let me try 好像还没练过DFS class Solution { public int maxIsland( int[][] grid , int x , int y , int row , int column ){ if( x >= 0 && ...原创 2018-09-08 22:17:42 · 87 阅读 · 0 评论 -
609. Find Duplicate File in System
一是对于java的很多数据结构的操作还不是很熟悉,不能熟练运用,我感觉到应该用一些数据结构来简化存储和查找的过程,但是不能具体到某一种数据结构; 二是对于String类的一些方法还不是很会运用,会有很多疏忽,比如indexof是要在一个字符串里面,而不是字符串数组== 这段程序跑的有点慢, class Solution { public List<List<String...原创 2018-09-09 11:06:49 · 97 阅读 · 0 评论 -
765. Couples Holding Hands
emmm,似懂非懂。。 class Solution { private void swap(int[] arr , int x , int y ){ int tmp = arr[ x ]; arr[ x ] = arr[ y ]; arr[ y ] = tmp; } public int minSwapsCouples(...原创 2018-09-15 22:05:15 · 111 阅读 · 0 评论 -
350. Intersection of Two Arrays II
class Solution { public int[] intersect(int[] nums1, int[] nums2) { Map<Integer,Integer> hash1 = new HashMap<>(); ArrayList<Integer> res = new ArrayList<>(...原创 2018-09-15 22:40:31 · 96 阅读 · 0 评论 -
128. Longest Consecutive Sequence
虽然明天机试,但是我好像没有之前那么慌张了,虽然我也不知道为啥。。。 不懂。。感觉大佬好厉害 class Solution { public int longestConsecutive(int[] nums) { int res= 0 ; int curMax = 0; Map<Integer,Integer> map =...原创 2018-09-15 23:24:40 · 88 阅读 · 0 评论 -
638. Shopping Offers
典型的知道原理,但是不知道如何去写的题目== class Solution { public int shoppingOffers(List<Integer> price, List<List<Integer>> special, List<Integer> needs) { return helper( price , ...原创 2018-09-16 07:52:39 · 119 阅读 · 0 评论 -
1023. Camelcase Matching
要达到题目的要求: query 中的 word 能否通过对 pattern 添加小写字母得到。 分为两个步骤去判断是否成立: 1. word 中 应包含这个 pattern 子串 2. 如果只能通过添加小写字母得到,那么 word 和 pattern 中的大写字母应该一样 题解中的: class Solution: def camelMatch(self, queri...原创 2019-10-10 09:33:16 · 119 阅读 · 0 评论