随笔分类 -  算法基础-解题报告-Leetcode

Leetcode解题报告
摘要:题目链接: https://leetcode.com/contest/weekly contest 165/problems/palindrome partitioning iii/ 解题思路: 题目要求是求出最小的值, 潜意识里最小,最大,最多这种最值问题大概率会和动态规划联系在一起. 因此直接建 阅读全文
posted @ 2019-12-02 05:55 JinleiZhang 阅读(326) 评论(0) 推荐(0)
摘要:解法一: 时间O(N LogN) 空间 O(N) 思路: 对于任意一个位置i, 假设i开花了, i 需要看下左侧离它最近的开花位置是不是i k 1, 或者看下右侧离它最近的位置是不是i + k + 1, 所以是个搜索问题. 搜索的话,我们知道有上下界查找,在java中,查数A的上界即找第一个大于该数 阅读全文
posted @ 2019-03-18 02:41 JinleiZhang 阅读(234) 评论(0) 推荐(0)
摘要:题目 : c++ class Solution { public: //how to prove this process //min min + k //max max k //如果min + k = max k 其它元素的取值范围一定是可以覆盖min + k, max k //所以是最小值是0 阅读全文
posted @ 2018-09-24 09:03 JinleiZhang 阅读(487) 评论(0) 推荐(0)
摘要:解题思路: 第一种方案: 二维dp 和为n的数,要么以1开头,要么以4开头,要么以9开头,依次类推,本题就是求这些可能方案中,需要平方数个数最少的那组解 dp[k][n] 表示以k开头的平方数序列,和为n时,最少需要的平方数个数 进一步递推可得 dp[k][n] = 1 + min{dp[k][n 阅读全文
posted @ 2018-09-11 00:18 JinleiZhang 阅读(150) 评论(0) 推荐(0)
摘要:题目 解题思路: 第一种方案, 假设数组长度为n, dp[i][j]为从i到j所能达到的最大收益,那么本题即求dp[0][n 1], 对于dp[i][j], 其可能的cooldown位置有 I, i + 1, ..., j 1, j, 所以存在递推关系 dp[i][j] = max{ dp[i][k 阅读全文
posted @ 2018-08-26 06:56 JinleiZhang 阅读(186) 评论(0) 推荐(0)
摘要:题目链接 https://leetcode.com/contest/weekly contest 96/problems/reachable nodes in subdivided graph/ 解题思路 1)题目要求,经过m步后,可以到达的点,等价于求有多少点距离起点的最短距离小于等于m,即这是一 阅读全文
posted @ 2018-08-16 06:15 JinleiZhang 阅读(490) 评论(0) 推荐(0)
摘要:*1.在线算法求数组的中位数 维护一个大顶堆,一个小顶堆 priority_queue<int, vector, greater> 小顶堆 priority_queue<int, vector, less> 大顶堆 为方便计算中位数,需保持大顶堆大小不小于小顶堆,所以要先判断堆大小 如果大顶堆大小等 阅读全文
posted @ 2018-05-13 22:15 JinleiZhang 阅读(1382) 评论(0) 推荐(0)
摘要:127. Word Ladder 思路一:单向bfs, 使用visited数组记录哪些已经访问过了, 访问过的就不允许再次入队, 同时这里想到的是使用26个英文字母,枚举可能的取值, 类似brute force 思路二:双向bfs,使用两个set,这里没有使用queue,是因为需要在queue里查询 阅读全文
posted @ 2018-04-02 00:32 JinleiZhang 阅读(585) 评论(0) 推荐(0)
摘要:1.数组长度为1的场景未考虑 2.最大和次大值的初始值都赋成了下标为0的值,应该使用下标0 和 1,区分出最大和次大 3.输出结果未做检查,如应该输出值,最后输出了值对应的数组下标 4.漏了分号 5.边界左闭右开 6.未定义和初始化下标i 7.函数名敲错 8.JAVA泛型类型int 和Integer 阅读全文
posted @ 2018-03-01 01:15 JinleiZhang 阅读(235) 评论(0) 推荐(0)
摘要:cpp struct Node { public: int val; int x; int y; public: Node(int val, int x, int y) { this val = val; this x = x; this y = y; } ~Node() {} bool opera 阅读全文
posted @ 2018-02-05 20:26 JinleiZhang 阅读(532) 评论(0) 推荐(0)
摘要:Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have ex 阅读全文
posted @ 2018-01-25 13:18 JinleiZhang 阅读(122) 评论(0) 推荐(0)
摘要:"题目链接" 解题报告: 1. 方案一:DFS, 时间复杂度O(2的N次幂), TLE 2. 方案二:DP, 时间复杂度O(N的3次幂),空间复杂度O(2N\ N\ N),可以优化为O(2\ N\ N) 阅读全文
posted @ 2017-12-07 14:00 JinleiZhang 阅读(939) 评论(0) 推荐(0)