随笔分类 - 每周算法练习
摘要:"题目" 题意:给你一个数组表示一个街道,每个数字表示一个房子里有多少钱,你可以打劫获得这些钱,但是不能同时打劫相邻的房子,问你最多可以得到多少钱, 题解:动态规划,DP[i][0]表示第0个房子没有打劫,DP[i][1] 表示第1个房子打劫了。
        阅读全文
            
摘要:"https://leetcode.com/problems/shortest palindrome/" 好题目啊! 题目: Given a string s, you are allowed to convert it to a palindrome by adding characters in
        阅读全文
            
摘要:"题目" 不想多说
        阅读全文
            
摘要:"题目" 题意:给你一个字母组成的矩阵,和一些单词,问你在矩阵中能否找到这些单词。 题解:这道题目的数据范围大概是,单词很多!矩阵倒不大。这么多单词,一个一个拿来暴搜肯定超时,把他们变成hash 效率也很低。最好的办法,把这些单词组成一个字典树(前缀树),然后在矩阵里DFS时同时从树上匹配单词。
        阅读全文
            
摘要:"题目" 题意:判断一个DNA序列中,长度为10的子序列,重复次数超过1次的序列! 题解:用一个map 就能搞定了,但是出于时间效率的优化,我们可以用位运算和数组代替map,首先只有四个字母,就可以用00,01,10,11 四个二进制表示,长度为10的序列,可以用长度为20的二进制序列表示。这样每中
        阅读全文
            
摘要:"题目" 题意:给你一个数组,让你把数组里的元素组合起来,组合成的新数字最大 题解:把数字给排个序,但是排序的标准是啥呢?两个数字孰大孰小呢?判断标准就是两个数字分别前后组合,得出的数字哪个大,则前面的那个数字就大。 一开始我的思路错了,根据数字每个位上的数字判断,这样反而是变得更加复杂了!
        阅读全文
            
摘要:"题目" 题意:每个格子里都有数字,负数代表你会少血,正数代表你会加血,当你的血量为0的时候就死了,从左上角出发,到右下角,问你一开始最少的血量是多少。整个过程中不能有血量为0的情况。 题解:只能走下或者走右。这种有向无环图,八成都是动态规划。但是如果从左上角开始规划,有很多情况要考虑。从右下角开始
        阅读全文
            
摘要:"题目" 题意:实现一个BST的Next()函数,输出BST里的从小到大的数字。 题解:题目说Next()的时间效率O(1),空间效率O(h),h为树的高度。我们维护一个栈,把前序遍历的左子树的结果存进去。 每次Next取出栈顶元素的时候,再遍历栈顶元素的右子树的前序遍历的左子树部分。
        阅读全文
            
摘要:"题目" 题意:问你一个数的阶乘,末尾有多少0 题解:一个数的阶乘结果的末尾的0,根据分解质因数,只能是2 5得到的,所以把这个数的阶乘分解质因数,看有多少个2 5,2显然是比5多的,所以数一数有多少个5就可以了。 比如24的阶乘里分解质因数有几个五呢?5 里有一个5,10,15,20里各有一个,一
        阅读全文
            
摘要:"题目"
        阅读全文
            
摘要:"题目" 题意:找出数组里重复最多的元素,重复最多是指数量大于n/2的, 题解:题目说一定存在答案,不用额外的内存空间,怎么做呢?其实很简单,重复最多的元素的数量大于剩下所有元素数量之和,维护一个数字count,代表数量,维护一个变量a代表重复最多的元素。遇到相同的a,count++,遇到不同的co
        阅读全文
            
摘要:"题目"
        阅读全文
            
摘要:"题目" 题意:找出数组里两个数字之和为指定数字的两个下标。 题解:双指针
        阅读全文
            
摘要:"题目" 题意:给出一个分数的分子和分母,给出这个分数的小数形式的字符串模式。循环的部分用( 括上。 题解:模拟除法,判断循环体。
        阅读全文
            
摘要:"题目" 题意:比较两个版本的大小 题解:
        阅读全文
            
摘要:"题目" 题意:就是给你一个数组,让你输出排好序后,相邻元素差值最大的那个差值。 题解:首先,当然我们可以用快排,排完序之后,遍历一遍数组,就能得到答案了。但是快速排序的效率是O(n logn),不是题目要求的线性效率,也就是O(n)的效率。 那么诸多排序算法中,也是由线性效率的排序算法,当然这些算
        阅读全文
            
摘要:"题目" 题意:一个数组,相邻的元素不相等,让你找出这个数组的驼峰,驼峰就是这个元素比相邻的元素都大。 题解:二分查找,如果你发现某个元素比左边相邻的元素小,那么左边一定存在驼峰,同理,右边也是。通过这个规律就可以二分了。
        阅读全文
            
摘要:"题目" 题意:寻找两个链表重合部分的起始点。 题解:计算两个链表的长度,从到最后一个点距离相等的点,开始比较就可以了。
        阅读全文
            
摘要:"题目" 题意:判断一个二叉树是否为 二叉搜索树BST 题解:所有思路都是去找二叉树中不满足BST性质的节点,找到了,就不符合,找不到就符合。那么怎么去找呢?我提供两种思想。 第一个是,BST的中序遍历是一个有序数组,所以把BST 中序遍历的结果拿出来,看看是不是有序的就可以了。很简单。那如果不让你
        阅读全文
            
 
                    
                 浙公网安备 33010602011771号
浙公网安备 33010602011771号