随笔分类 - 算法基础-解题报告-Leetcode
Leetcode解题报告
摘要:题目链接: https://leetcode.com/contest/weekly contest 165/problems/palindrome partitioning iii/ 解题思路: 题目要求是求出最小的值, 潜意识里最小,最大,最多这种最值问题大概率会和动态规划联系在一起. 因此直接建
阅读全文
摘要:解法一: 时间O(N LogN) 空间 O(N) 思路: 对于任意一个位置i, 假设i开花了, i 需要看下左侧离它最近的开花位置是不是i k 1, 或者看下右侧离它最近的位置是不是i + k + 1, 所以是个搜索问题. 搜索的话,我们知道有上下界查找,在java中,查数A的上界即找第一个大于该数
阅读全文
摘要:题目 : c++ class Solution { public: //how to prove this process //min min + k //max max k //如果min + k = max k 其它元素的取值范围一定是可以覆盖min + k, max k //所以是最小值是0
阅读全文
摘要:解题思路: 第一种方案: 二维dp 和为n的数,要么以1开头,要么以4开头,要么以9开头,依次类推,本题就是求这些可能方案中,需要平方数个数最少的那组解 dp[k][n] 表示以k开头的平方数序列,和为n时,最少需要的平方数个数 进一步递推可得 dp[k][n] = 1 + min{dp[k][n
阅读全文
摘要:题目 解题思路: 第一种方案, 假设数组长度为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
阅读全文
摘要:题目链接 https://leetcode.com/contest/weekly contest 96/problems/reachable nodes in subdivided graph/ 解题思路 1)题目要求,经过m步后,可以到达的点,等价于求有多少点距离起点的最短距离小于等于m,即这是一
阅读全文
摘要:*1.在线算法求数组的中位数 维护一个大顶堆,一个小顶堆 priority_queue<int, vector, greater> 小顶堆 priority_queue<int, vector, less> 大顶堆 为方便计算中位数,需保持大顶堆大小不小于小顶堆,所以要先判断堆大小 如果大顶堆大小等
阅读全文
摘要:127. Word Ladder 思路一:单向bfs, 使用visited数组记录哪些已经访问过了, 访问过的就不允许再次入队, 同时这里想到的是使用26个英文字母,枚举可能的取值, 类似brute force 思路二:双向bfs,使用两个set,这里没有使用queue,是因为需要在queue里查询
阅读全文
摘要:1.数组长度为1的场景未考虑 2.最大和次大值的初始值都赋成了下标为0的值,应该使用下标0 和 1,区分出最大和次大 3.输出结果未做检查,如应该输出值,最后输出了值对应的数组下标 4.漏了分号 5.边界左闭右开 6.未定义和初始化下标i 7.函数名敲错 8.JAVA泛型类型int 和Integer
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要:"题目链接" 解题报告: 1. 方案一:DFS, 时间复杂度O(2的N次幂), TLE 2. 方案二:DP, 时间复杂度O(N的3次幂),空间复杂度O(2N\ N\ N),可以优化为O(2\ N\ N)
阅读全文

浙公网安备 33010602011771号