随笔分类 - leetcode简单题
写一些leetcode简单题,目的是联系算法和js语法。
摘要:问题链接 https://leetcode.cn/problems/assign-cookies/description/ 解题思路 这个题目,同样可以运用贪心的思路。 我们首先进行排序。对孩子需要的饼干大小,和能够提供的饼干大小都做一个排序。 遍历孩子,在孩子中,遍历饼干(可以设置一个变量记住当前
阅读全文
摘要:问题描述 https://leetcode.cn/problems/longest-palindrome/description/ 解题思路 这题被划分在了贪心tag下面。 贪心算法解题有个前提条件,就是说我们能够找到局部的最优解。然后将局部最优解组合起来,得到全局的最优解。 这个题目,明显可以用贪
阅读全文
摘要:问题链接 https://leetcode.cn/problems/hanota-lcci/description/ 解题思路 首先我们要定义递归函数。汉诺塔问题是典型的递归问题(缩小规模,小规模问题是大规模问题的子集),而且是典型的递归的定义就是递归的解的问题。 首先,我们定义一个汉诺塔函数,参数
阅读全文
摘要:问题描述 https://leetcode.cn/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/description/ 解决方案 首先,这题有更简洁的解法,但我的脑子不够用,我只会模拟。所以就只写模拟。 首先,按照解递归的一般思
阅读全文
摘要:问题描述 https://leetcode.cn/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof/description/ 解题思路 参考这个 代码 # Definition for singly-linked list. # class Lis
阅读全文
摘要:问题链接 https://leetcode.cn/problems/fan-zhuan-lian-biao-lcof/description/ 解题思路 参考上一个题目。 代码 class ListNode: def __init__(self, x): self.val = x self.next
阅读全文
摘要:问题链接 https://leetcode.cn/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/description/ 解题思路 首先看参数和返回值。参数为一个链表的头节点。返回值为一个逆序好的数组。 然后看本层做什么,以及怎么缩小规模。 本层要做
阅读全文
摘要:问题描述 https://leetcode.cn/problems/fibonacci-number/description/ 解题思路 最经典的递归问题,它的问题描述就是递归的。 先考虑参数和返回值。参数就是n,返回值是fib(n)的值。 然后考虑本层做什么,以及缩小规模。 根据定义,本层就是将f
阅读全文
摘要:题目链接 https://leetcode.cn/problems/power-of-four/description/ 解题思路 参考3的幂。 代码 class Solution: def isPowerOfFour(self, n: int) -> bool: if n <= 0: return
阅读全文
摘要:问题链接 https://leetcode.cn/problems/power-of-three/description/ 解题思路 这是一个常规的递归问题。我们首先考虑参数和返回值。 参数显而易见是一个整数,返回值是是否为3的幂。 然后我们考虑本层做什么,和如何缩小问题规模。 如果n是3的幂,那n
阅读全文
摘要:题目链接 https://leetcode.cn/problems/palindrome-linked-list/description/ 解题思路 这题是一个常规中带有一些递归的特殊用法的题目。我们按照递归的一般思路,首先考虑参数和返回值。 题目已经给出了显而易见的参数和返回值。参数为链表中的节点
阅读全文
摘要:题目链接 https://leetcode.cn/problems/power-of-two/description/ 解题思路 首先,按照递归的一般思路,参数是一个整数,返回值是True or False,这个表明n到底是不是2的幂。 然后想,本层应该处理什么。(本层处理一般不需要考虑边界条件,只
阅读全文
摘要:题目链接 https://leetcode.cn/problems/reverse-linked-list/description/ 解题思路 按照我们解递归的一般思路,首先确定参数和返回值。 从题意可以看出,参数是给定一个链表的头结点,返回值是一个逆序的链表。 然后,缩小问题规模的方式,在链表中,
阅读全文
摘要:题目链接 https://leetcode.cn/problems/remove-linked-list-elements/description/ 解题思路 按照我们解决递归的思路,我们首先想,这个递归函数,应该返回什么,应该定义什么参数。 显而易见,递归要解决什么问题,就要返回什么参数。即,我们
阅读全文
摘要:背景 这个题目一般用来学习数据结构时练手用。但我们今天只研究递归,按tag刷。 题目链接:https://leetcode.cn/problems/merge-two-sorted-lists/description/ 递归解题一般思路 递归程序设计,对新手来说是个难点。 递归的主题思想是: 递归是
阅读全文
摘要:链接:https://leetcode.cn/problems/intersection-of-two-arrays/ 描述: 思路: 这道题简直太明显了...直接丢到集合里,求交集就行了。注意python的求交集可以直接用&符号。 代码: 1 class Solution: 2 def inter
阅读全文
摘要:链接 https://leetcode.cn/problems/missing-number/submissions/ 思路一: 直接排序,排序后遍历,发现元素跟下标不同就返回下标即可。 如果遍历到最后都没有返回,说明是最后一个数字不见了,直接返回数组的长度就可以了。 . 思路二: 线性时间,常数空
阅读全文
摘要:https://leetcode.cn/problems/valid-anagram/ 这种题目简单是很简单,但是写起来很麻烦。 思路: 先搞一个dict用来存放第一个字符串各字符及其出现次数的对应关系。 然后遍历第二个字符串,对应的减掉次数。 看最后剩下的dict是个啥东西,就行了。 当然了,这题
阅读全文
摘要:题目链接:https://leetcode.cn/problems/contains-duplicate/ 分析: 这题简单到不能再简单了。 2个思路,1是先排序,排序之后如果有2个相邻元素相等,那就是True. 那么时间消耗是nlogn+n 另外1个思路是先搞个set用来存储遍历过的元素。时间的消
阅读全文
摘要:题目链接:https://leetcode.cn/problems/majority-element/ 题目描述: 分析: 这题,可以先排序,直接返回最中间的元素即可。但排序最快也是nlogn,显得自己比较lowB。 所以就要使用摩尔投票法。简而言之,就像是脑残游戏一样,两军对垒,谁的兵多谁就赢。玩
阅读全文