2020年4月18日
摘要: 题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 思路:题目比较简单 程序: class Solution: def searchInsert(self, nums: List[int], t 阅读全文
posted @ 2020-04-18 15:41 桌子哥 阅读(1265) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 思路:二分法,使用一个指针来找到数字的开头和结尾位置 程序: class  阅读全文
posted @ 2020-04-18 15:01 桌子哥 阅读(2279) 评论(0) 推荐(0) 编辑
摘要: 题目: 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度必 阅读全文
posted @ 2020-04-18 14:04 桌子哥 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 题目:实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 思路:两个指针,一个向前,一个向后 程序: class Solution: def nextP 阅读全文
posted @ 2020-04-18 13:09 桌子哥 阅读(612) 评论(0) 推荐(0) 编辑
摘要: 题目: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 思路:较简单 程序: clas 阅读全文
posted @ 2020-04-18 10:46 桌子哥 阅读(579) 评论(0) 推荐(0) 编辑
摘要: 题目:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 思路:原地删除,在原有数组上进行处理 程序: class Solution: def rem 阅读全文
posted @ 2020-04-18 10:37 桌子哥 阅读(596) 评论(0) 推荐(0) 编辑