上一页 1 ··· 7 8 9 10 11 12 13 14 下一页
摘要: 本题是给出一个字符串,让你分割为k个回文串,问至少需要修改多少字符才能完成。这道题是典型的动态规划类题目,首先预处理出s[i]到s[i]的字符串如果修改成回文串需要修改多少字符,然后用一个数组dp[i][j]记录下标从0到i的字符组成的字符串分割为j个回文串最少需要修改多少字符。使用dp[i][t] 阅读全文
posted @ 2020-05-05 16:03 South1999 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 本题是给出一个图,标注有哪些节点相连接,这些节点中有若干个感染病毒,并且相连接的节点其中如果有一个感染,它就会把病毒传染给它所连接的节点,问从初始感染列表中去掉哪一个节点可使最终感染的节点数最小,如果有多个节点满足条件,输出标号最小的节点。这道题思路就是首先求出有多少个连通的区域,一个区域内有一个感 阅读全文
posted @ 2020-05-04 10:38 South1999 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 这道题就是给出字符串,字符串中的每一个字符代表一个数字,字符和数字是一一对应的,且保证不同的字符最多有十种,问给出的字符串是否存在映射使加法成立。描述的可能不是很清楚,详见原题 "LeetCode 1307 口算难题" 。这道题是dfs+剪枝,纯暴力时间开销很大,我的想法是从每个字符串的最低位依次枚 阅读全文
posted @ 2020-05-03 22:58 South1999 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 这道题是给你n个硬币,要求用若干个硬币正好支付m,且这些硬币的在所有解中的序列最小。背包问题,难点在于如何保证输出的硬币序列最小。这道题给出的m的范围比较小,我们可以将所有硬币按照从小到大排序,然后用一个二维数组记录剩余需要支付的钱数和是否支付硬币的状态(记忆化搜索),最先找出来的解就是答案,因为之 阅读全文
posted @ 2020-05-03 16:35 South1999 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 基本上算是一道数学题,给出一个数字K,问有多少个非负整数的阶乘末尾有K个零。当初只知道答案只可能是0或5,因为末尾有0必定是2和5的乘积,每过五个数末尾0的数量一定会改变,求出阶乘有多少个2 5就不容易了,因为不可能实际求出阶乘。问题可以转变成求出有多少个因子5,因为2一定比5多,后来看了官方的解题 阅读全文
posted @ 2020-05-02 16:18 South1999 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 给定正整数N,返回小于等于N且至少具有1位重复数字的正整数。当时没想到思路,只想到有重复数位的数不好算,但是不含有重复数字的数的个数可以算,后来看了一个人的解答,用数位dp+排列可以做出来。大致分为两部分,设这个数字有k位,第一部分计算是数字不到k位的数且这些数每一位的数字不相同,第二部分是计算k位 阅读全文
posted @ 2020-05-01 17:42 South1999 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 这道题大意是给出一个山脉数组,山脉数组的特点是长度不小于3,有一个数为山顶,这个数左边是递增数组,右边是递减数组,求出数组第一个出现值为target的数的下标,如果没有返回 1。数组最大长度能到10000,不能去遍历这个数组,因为最多只能访问100次数组,那么首先我想到的方法就是二分。整个数组又不是 阅读全文
posted @ 2020-04-29 21:14 South1999 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 一、Docker Compose的安装 因为直接用curl命令下载太慢了,所以我换了其他的下载方法,解决github release下载过慢的方法我会在文章后面的问题及解决方法中说明。 我们把docker compose下载过后,放到指定的文件夹中。因为我是在主机中下载的,然后直接放在共享文件夹中, 阅读全文
posted @ 2020-04-29 12:08 South1999 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 这道题是给出你一个数组,只有两个数字出现一次,其余数字都是出现两次,要求空间O(1),时间O(n)。这道题的做法非常巧,我只想到了两个相同的数异或为0,然后把所有的数异或之后就得出目标两个数异或的结果,后面就不知道怎么才能在题目给出的时间和空间复杂度完成。我看了一个很好的方法,假设所有数的异或结果为 阅读全文
posted @ 2020-04-28 21:58 South1999 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 本题有一定的难度,如果用普通的栈和数组搭配去做会超时,后来去网上查了做法,有人说可以用树状数组做。本题大致意思就是给定一个栈,有三种操作,分别是push数入栈、pop出栈和寻找栈中按顺序排列的最中间的数,我们可以用一个树状数组记录每个数字存在的次数,配合二分法,每次去求1到n的和,也就是1到n出现了 阅读全文
posted @ 2020-04-27 17:44 South1999 阅读(164) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 下一页