leetcode刷题总结251-300

251-256.。

257. 二叉树的所有路径

  描述:

    

 

 

   思路:递归(几乎所有的树的遍历等操作都可以用递归)

258. 各位相加

  描述:

    输入: 38
    输出: 2
    解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。

  思路:按照思路

259.。。。。

260. 只出现一次的数字 III

  描述:

    

 

 

   思路:所有数字位异或的操作。然后得出那两个只出现一次的数字的异或。找到结果为0 的位,然后按照位为0,1分组。再次异或。

261.262.。。。

263. 丑数

  描述:    

    

 

 

   思路:不断除以2,3,5.先判断余数是否为0再进行除。

264. 丑数 II

  描述:

    

 

 

   思路:三个指针。分别为2.3.5.从1开始,当某个指针乘以当前这个数字最小的时候,在丑数列表后添加,同时这个指针往后移一位。

265.266.。。。

268. 缺失数字

  描述:

    

  思路:位异或。

269.270.271.272.。。

273. 整数转换英文表示

  描述:    

    

 

 

   思路:分治。从右往左按3位进行分。

274. H 指数

  描述:

    

 

 

   思路:排序。从左往右开始判断。

275. H指数 II

  描述:

    

 

 

   思路:二分查找。

276.277.。。

278. 第一个错误的版本

  思路:二分。

279. 完全平方数

  描述:

    

  思路:动态规划。dp[i]=min(dp[i],dp[i-j*j]+1)j从1,2,3.。。

280.281.。。

282. 给表达式添加运算符

  描述:

    

 

 

   思路:回溯。遇到*的话需要进行特殊处理。

283. 移动零

  描述:

    输入: [0,1,0,3,12]
    输出: [1,3,12,0,0]

  思路:双指针。。

284. 顶端迭代器

  描述;

    

 

 

   思路:在构造方法中构建linkedlist.调用linkedlist方法完成。;

285.286.。。

287. 寻找重复数

  描述:

    给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。

    输入: [1,3,4,2,2]
    输出: 2

  思路:求出中点mid,然后遍历整个数组,统计所有小于等于mid的数的个数,如果个数大于mid,则说明重复值在[mid+1, n]之间,反之,重复值应在[1, mid-1]之间,然后依次类推,直到搜索完成,此时的low就是我们要求的重复值。

288.。。。

289. 生命游戏

  思路:

    

  思路:按照题目描述,将不同状态改为不同的数字。按照数字和0或1进行判断修改。

290. 单词规律

  描述:

    输入: pattern = "abba", str = "dog cat cat dog"

    输出: true

  思路:hash

292. Nim 游戏

  描述:

    

 

   思路:通过演练找规律。当为4 8 12 16 .。。。必输。

295. 数据流的中位数

  描述:

    

 

   思路:中位数关注的是第k小的数字。或者是第k,k+1.那么我们需要维护两个堆。一个大顶堆。用于维护前k小的数字。一个小顶堆,维护后k....的数字。同时还要保持这两个堆之间的输入流动。当来一个数字的时候,我们需要将其压入大顶堆,然后将大顶堆弹出一个元素入小顶堆。当此时为奇数,我们需要将小顶堆的弹出压入大顶堆。

297. 二叉树的序列化与反序列化

  思路:DNF,BFS

299. 猜数字游戏

  描述:

    输入: secret = "1807", guess = "7810"

    输出: "1A3B"

    解释: 1 公牛和 3 奶牛。公牛是 8,奶牛是 0, 1 和 7。

  思路:先按照下标对比求出A.然后通过hash求B

300. 最长上升子序列

  描述:

    输入: [10,9,2,5,3,7,101,18]

    输出: 4 

    解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。

  思路;动态规划。dp[i]决定于当前的最长上升子序列的从头开始到当前数字的长度。然后从头找到i,只要比nums[i]小,就进行一次max.  

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

290. 单词规律

posted @ 2020-07-08 18:44  _Meditation  阅读(179)  评论(0编辑  收藏  举报