摘要: 今天刷的题是LeetCode第16题,该题跟上一题很像,依然是可以暴力法和先排序再解决的方法 具体地我的代码是: 阅读全文
posted @ 2019-09-02 20:52 刘云生 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 今天刷的题是LeetCode第15题,三个数之和 即给定数组的情况下,找到三个数之和为0 首先是暴力法,三层for循环,具体地代码如下: 但是暴力法是直接超出时间了。因此可以考虑对数组做一定的预处理。三个数之和等于0,那么对应着必须要有小于等于0的数,因此可以先对数组进行排序,然后再用双指针,代码如 阅读全文
posted @ 2019-09-02 20:22 刘云生 阅读(163) 评论(0) 推荐(0) 编辑
摘要: j今天刷的题是Leecode第11题,题目要求是: 第二种方法是双指针遍历,,主要的难点在于指针的移动。双指针中,移动较小的那个。耗时6ms,内存消耗45.9MB 阅读全文
posted @ 2019-08-30 21:42 刘云生 阅读(210) 评论(0) 推荐(0) 编辑
摘要: j今天刷的题是LeetCode第53题,题目描述如下: 阅读全文
posted @ 2019-08-30 21:37 刘云生 阅读(168) 评论(0) 推荐(0) 编辑
摘要: j今天刷的题是LeetCode26题,题目要求是给定一个排序数组,要求删除其中重复的元素 并且不能申请额外的数组空间,必须原地操作,以及空间复杂度为01 首先是来看我自己的代码,我是这样想的,当找到重复的元素的时候,就把数组后面整体的元素都往前移动,因此重点就成了如何找到重复元素的个数,也就是移动的 阅读全文
posted @ 2019-08-28 17:03 刘云生 阅读(152) 评论(0) 推荐(0) 编辑
摘要: j今天刷的题是LeetCode第4题,给定两个有序数组,输出合并数组后的中位数。可以假设两个数组不同时为空 开始自己的想法是,设定两个指针,然后当两个指针中较小的哪一个,该指针就加1,但是这里面要考虑很多问题,首先是两个数组的越界问题,另一个问题是,两个数组中,如果有一个已经遍历完了,还没找到相应的 阅读全文
posted @ 2019-08-26 21:14 刘云生 阅读(134) 评论(0) 推荐(0) 编辑
摘要: j今天刷的题是LeetCode292题,题目的要求是:桌子有一堆石头,每次你和你的朋友可以拿1~3块,拿掉最后一块石头的人胜利,你作为先手,判断在给定石头数量的情况下,是否可以赢得比赛。 分析: 阅读全文
posted @ 2019-08-26 11:40 刘云生 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 今天刷的题是LeetCode第146题,题目要求是实现一个LRU(最近最少使用)缓存机制,并支持获取数据get和写入数据put 获取数据get(key):如果key存在与缓存中,则获取key对应的值,否则返回-1 写入数据put(key,value):如果key不存在,则写入数据。当缓存容量达到上限的时候,应该在写入新数据之间删除最近最少使用的数据值,从而为新数据值留出空间这个题的解法很丰富,可以 阅读全文
posted @ 2019-08-24 11:25 刘云生 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 今天刷的题是LeetCode236题,是给定一个二叉树,以及二叉树中的两个节点,然后找出两个节点的最近公共祖先 上一道题我自己的解法在这道题依旧适用,即找出两节点到根节点的路径,然后遍历。 我自己的解法,当时为了找到这条路径费了很多劲儿。这道题参考了哈LeetCode的官方解答思路,说可以用父指针的 阅读全文
posted @ 2019-08-22 11:39 刘云生 阅读(136) 评论(0) 推荐(0) 编辑
摘要: j今天刷的题是LeetCode第235题。题目要求是:给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先 即,对于有根树T的两个节点pq,最近公共祖先表示为一个节点x,满足pq是x的子节点且x的深度尽可能大 其中给定的二叉树,所有节点的值均不相同,并且pq为不同节点且在二叉树中 开始的时候,想 阅读全文
posted @ 2019-08-20 21:34 刘云生 阅读(186) 评论(0) 推荐(0) 编辑