上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 20 下一页
摘要: 这题题目描述的有点不清楚,题意是给一个字符串,如果有某个子串(长度为10)重复出现了,就记录到一个数组里,最后返回的数组就是重复出现的子串组成的数组。 因为子串长度固定为10,所以遍历一遍就行,每个子串都记录到一个set里,这个set就是判断子串是否重复出现了,如果重复出现了,就记录到数组里。 但是 阅读全文
posted @ 2020-08-02 21:08 machine_gun_lin 阅读(84) 评论(0) 推荐(0)
摘要: 要实现二叉搜索树的迭代器,判断当前元素是否有下一个元素和知道下一个元素是多少? 好办,二叉搜索树的中序遍历序列不是升序的嘛,那我们就可以对二叉搜索树中序遍历一遍记录到一个全局变量数组里面,然后要判断是否有下一个元素和下一个元素是多少就很简单了。 代码如下: /** * Definition for 阅读全文
posted @ 2020-08-02 20:31 machine_gun_lin 阅读(139) 评论(0) 推荐(0)
摘要: 参考这个链接 直接计算阶乘,再求0的个数肯定会溢出,因为阶乘增长的很快。 所以需要观察一下规律,阶乘里出现0,肯定是能被10整除,而10只能由2*5组成,所以问题就转换为阶乘里有几对2和5. 由于2每两个数就出现一次,5要每5个数出现一次,所以阶乘里2的数量肯定比5多,所以问题又转换为寻找阶乘里5的 阅读全文
posted @ 2020-08-02 20:16 machine_gun_lin 阅读(105) 评论(0) 推荐(0)
摘要: 把每一位的字母转换成1~26的数字,再乘上pow(26, x),x是当前字符的位置到字符串末尾的距离,比如最后一个字母,就乘上26的0次方,也就是1. 倒数第二个字母,就乘上26的1次方,依次类推。 class Solution { public: int titleToNumber(string 阅读全文
posted @ 2020-08-02 18:32 machine_gun_lin 阅读(93) 评论(0) 推荐(0)
摘要: 遍历一遍数组,对所有元素的出现次数做哈希。 class Solution { public: int majorityElement(vector<int>& nums) { unordered_map<int, int> hash; int size = nums.size(); for(int 阅读全文
posted @ 2020-08-02 18:17 machine_gun_lin 阅读(67) 评论(0) 推荐(0)
摘要: 逆序来求字符串,每次把当前数字n对26取余,也就是当前这一位的字母,加到字符串里。 然后数字n整除26,再继续判断是否还能添加字符。 class Solution { public: string convertToTitle(int n) { string res; while(n != 0) { 阅读全文
posted @ 2020-08-02 18:09 machine_gun_lin 阅读(66) 评论(0) 推荐(0)
摘要: 既然题目都说了数组是升序的,那就双指针分别指向数组开头末尾,然后判断两个指针指向的数是否和target相等,如果和小于target,那么左指针右移,这样就可以让和增加了,如果和大于target,那么让右指针左移,这样就可以让和减小了,一直这样操作直到和等于target或者左右指针相遇。 代码如下: 阅读全文
posted @ 2020-08-02 16:33 machine_gun_lin 阅读(62) 评论(0) 推荐(0)
摘要: 题目说了,峰值元素就是大于相邻左右元素的元素,又说了nums[-1] = nums[n] = -∞,所以我们就寻思着,如果nums[0]比nums[1]大,再加上nums[-1]是负无穷,那么nums[0]不就是一个峰值元素了吗。 如果nums[0]不比nums[1]大,那么我们接着把nums[1] 阅读全文
posted @ 2020-07-31 22:14 machine_gun_lin 阅读(73) 评论(0) 推荐(0)
摘要: 这题做法比较贼,让两个指针p, q分别指向两个链表的头,然后只要两个指针不为空且指向的位置不同,就都向后移动,当一个指针为空的时候,就指向另一个链表的头。 比如上面这图,假设相交部分之前,两个链表的长度分别是a,b,相交链表之后的长度为c。 那么p指针走了a + c长度(走完第一个链表)之后,指向第 阅读全文
posted @ 2020-07-31 21:40 machine_gun_lin 阅读(53) 评论(0) 推荐(0)
摘要: 要能够在常数时间内检索到栈内最小元素,我们可以额外开一个栈,这个额外的栈的栈顶元素存放目前栈内的最小元素,每次栈内压入一个新元素,辅助栈也压入一个元素,也就是把新元素和原栈顶元素比较,较小的那个就是新的最小元素,压入辅助栈的栈顶;原栈弹出栈顶元素的时候,辅助栈也弹出栈顶元素,这样,不管什么时候,辅助 阅读全文
posted @ 2020-07-31 21:22 machine_gun_lin 阅读(46) 评论(0) 推荐(0)
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 20 下一页