![](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 · 92 阅读 · 0 评论 -
258. Add Digits
同余公式 dr( n ) = 1 + ( n - 1 ) % 9 digit rootclass Solution { public int addDigits(int num) { return 1 + ( num - 1 ) % 9 ; }}原创 2018-09-28 22:11:34 · 84 阅读 · 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 · 106 阅读 · 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 · 95 阅读 · 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 · 120 阅读 · 0 评论 -
160. 相交链表
在评论区看到的很优雅的解法:定义两个指针分别移动,当其中一个指针如pa移动到链表末尾时指向另一链表的头部headB ,再继续移动,当指针pb移动到末尾时使其指向headB,经过这样的操作,就消除了长度差,两指针当前位置与相交节点之间的距离相同果然优雅的解法不仅需要计算机技能,还需要数学知识==,以及智商==# Definition for singly-linked list.# cl...原创 2019-06-16 09:54:22 · 94 阅读 · 0 评论 -
53. 最大子序和
核心思路就是看当前最大和大于0还是小于0,如果大于0就并入最大子序列和的候选集,否则就以当前的元素为新序列思路一:动态规划dpnums[i-1]记录当前最大和,若其大于0就可以组成最大序列的候选项,若小于0则nums[i]为新序列class Solution(object): def maxSubArray(self, nums): """ :...原创 2019-06-11 16:22:39 · 113 阅读 · 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 · 93 阅读 · 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 · 107 阅读 · 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 · 153 阅读 · 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 · 79 阅读 · 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 · 85 阅读 · 0 评论 -
4. Longest Common Prefix
找出一组字符串的最长公共前缀解法一:水平扫描从前往后枚举字符串的每一列,先比较每个字符串相同列的字符(即不同字符串相同下标的字符)然后再进行对下一列的比较。class Solution(object): def longestCommonPrefix(self, strs): """ :type strs: List[str] ...原创 2019-07-23 11:46:30 · 85 阅读 · 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 · 115 阅读 · 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 · 120 阅读 · 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 · 96 阅读 · 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 · 111 阅读 · 0 评论 -
553. Optimal Division
感觉应该是动归或者什么思想之类的吧,emmm,看了disscussion之后,是一种比较tricky的想法,就是要想实现最优化其实不管数字是什么,加括号的位置都是一样的,从第二个到最后一个都在括号里面,都作为分母 class Solution {public: string optimalDivision(vector<int>& nums) { ...原创 2018-09-04 16:50:54 · 95 阅读 · 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 · 252 阅读 · 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 · 94 阅读 · 0 评论 -
647. Palindromic Substrings
我觉得回文子串就是我的一道坎。。。这道题的话我想用从中间位置向两边搜索的思想,这样的话就需要考虑串的长度奇偶性的问题。我试着写了一下处理奇偶的问题,但是一直报错,,,看了一下别人的代码,真是正确又优雅啊。。。。 (错误的)放在这警醒一下自己下次不要再写错了==class Solution {public: int countSubstrings(string s) {...原创 2018-09-05 11:01:18 · 354 阅读 · 0 评论 -
260. Single Number III
这次是有两个数字只出现了一次,上次只出现了一次那个一个思路是用异或做的,还一个思路是根据i和i-1的对应关系改变值的正负(是在数组的值都在下标范围内才可以这样做),这次这个嘛,let me think think,还要求线性时间复杂度,常数空间复杂度用Map的话,就不是常数空间复杂度了吧,,没想出来,看了一下discussion,真是,,惊为天人啊,,,想法好奇,使用了两次异或XOR...原创 2018-09-05 12:29:04 · 84 阅读 · 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 · 113 阅读 · 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 · 152 阅读 · 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 · 95 阅读 · 0 评论 -
695. Max Area of Island
出去走了一下午,被拉去做苦力,累死了,刚回来。 这道题应该是裸的DFS或者BFS吧。let me try 好像还没练过DFSclass Solution { public int maxIsland( int[][] grid , int x , int y , int row , int column ){ if( x >= 0 && ...原创 2018-09-08 22:17:42 · 94 阅读 · 0 评论 -
609. Find Duplicate File in System
一是对于java的很多数据结构的操作还不是很熟悉,不能熟练运用,我感觉到应该用一些数据结构来简化存储和查找的过程,但是不能具体到某一种数据结构;二是对于String类的一些方法还不是很会运用,会有很多疏忽,比如indexof是要在一个字符串里面,而不是字符串数组==这段程序跑的有点慢,class Solution { public List<List<String...原创 2018-09-09 11:06:49 · 103 阅读 · 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 · 116 阅读 · 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 · 99 阅读 · 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 · 92 阅读 · 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 · 125 阅读 · 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 · 124 阅读 · 0 评论