- 博客(9)
- 收藏
- 关注
原创 leetcode每日一题(12.24)(135)
135. 分发糖果 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 相邻的孩子中,评分高的孩子必须获得更多的糖果。 那么这样下来,老师至少需要准备多少颗糖果呢? 解题 两次遍历 我们可以将「相邻的孩子中,评分高的孩子必须获得更多的糖果」这句话拆分为两个规则,分别处理。 左规则:当 ratings[i - 1] < ratings[i] 时,i 号学生的糖果数量将比i
2020-12-24 10:17:45
358
原创 leetcode每日一题(454)(11.27)
在我们解这题前,先来看看15.三数之和,18.四数之和,454题是这题的扩展 15.三数之和 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。 注意: 答案中不可以包含重复的三元组 解题: 本题难度在于如何去除重复解 对于数组长度n为null或者数组长度小于3的,返回【】 对数组进行排序 遍历排序后数组: 1.若 nums[i]>0:因为已经排序好,所以后面不可能有三
2020-11-27 12:26:00
274
原创 leetcode每日一题(11.26)(164)
164.最大间距 给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。 如果数组元素个数小于 2,则返回 0。 说明: 你可以假设数组中所有元素都是非负整数,且数值在 32 位有符号整数范围内。 请尝试在线性时间复杂度和空间复杂度的条件下解决此问题。 解题: 1.直接sort排序,单次遍历寻找maxnum,但排序时间复杂度较高。 代码: class Solution: def maximumGap(self, nums: List[int]) -> int:
2020-11-26 10:35:09
370
原创 leetcode每日一题(11.24)(222)
222.完全二叉树的节点个数 给出一个完全二叉树,求出该树的节点个数。 说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。 解题: 直接暴力法用递归完成,时间复杂度为O(n) 代码: # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): #
2020-11-24 16:07:29
209
原创 leetcode每日一题(11.23)(452题)(动态规划的一种总结)
由于这题有很多类似题目,在此做一个总结。都采取相似的方法,即动态规划法,但时间复杂度和空间复杂度可能不是很好 300.最长上升子序列 给定一个无序的整数数组,找到其中最长上升子序列的长度。 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为 O(n2) 。 题解: 这种子序列求极值的题目,应该要考虑到贪心或者动态规划。这道题贪心是不可以的,我们考虑动态规划。 按照动态规划方法可以想出下面的定义状态的方式: 以 i 结尾(一定包括 i)所能形成的最长上升子
2020-11-23 11:17:20
323
原创 leetcode题目(栈、队列、堆)
225.用队列实现栈 使用队列实现栈的下列操作: push(x) – 元素 x 入栈 pop() – 移除栈顶元素 top() – 获取栈顶元素 empty() – 返回栈是否为空 注意: 你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。 你所使用的语言也许不支持队列。 你可以使用 list 或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。 你可以假设所有操作都是有
2020-11-22 11:43:26
185
原创 leetcode每日一题(11.22)(242题)
242.有效的字母异位题(简单) 给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。 提示:可以假设字符串只包含小写字母 题解思路:第一眼看过去直接用暴力法将第二个中的字符直接便利。 后来想到先将两个字符串转换为列表,先判断是否列表长度相等,应用列表的sort函数按字母排序,之后直接判断列表是否相等即可。 还有一种用哈希表映射的方法也是可以的。先判断是否字符串长度相等,将26个字母映射到哈希表上,第一个字符串中字母出现一个则相应位置加1。若出现hashtable(i)<0的情况则返回f
2020-11-22 11:16:29
238
原创 第二章 变量和简单数据类型
第二章 变量和简单数据类型运行Hello_world.py时发生的情况变量变量的命名与使用使用变量时避免命名错误字符串 运行Hello_world.py时发生的情况 末尾的.py指出这是一个Python程序,因此编辑器将使用Python解释器来运行它。 变量 message = "Hello Python World!" print(message) 结果将会显示Hello Python World! 而 message = "Hello Python World!" print(message) mes
2020-07-04 11:46:07
311
1
原创 Python的编程与实践
Python编程与实践前言第一部分第二部分第一个项目第二个项目第三个项目Python的优点Python 的应用 前言 第一部分 将学习编写一个Python程序时需要熟悉的基本编程概念。 第二部分 第一个项目 《外星人入侵》,完成这个项目即可以自己动手开发2D的游戏 第二个项目 数据的可视化,即通过各种可视化技术来搞懂海量信息。 第三个项目 建立小型Web应用程序,并让任何人都能通过网络访问。 Python的优点 Python是一个效率极高的编程语言,程序包含的代码行更少;Python的语法有助于创建简介的代
2020-06-22 22:37:01
439
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅