Leetcode
文章平均质量分 58
小王~同学
这个作者很懒,什么都没留下…
展开
-
剑指offer59:滑动窗口的最大值
剑指offer59:滑动窗口的最大值给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释:滑动窗口使用的数据结构是双端队列deque中只包含窗口内的元素:每轮窗口滑动移除了元素 nums[i - 1],需将 deque 内的对应元素一起删除。deque 内的元素 非严格递减:每轮窗口滑动添加了元素 ,需将 deque 内所有 < nu原创 2021-05-30 17:16:26 · 91 阅读 · 0 评论 -
剑指Offer——最小的K个数(Java)
题目描述输入整数数组arr,找出其中最小的k个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例示例1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例2:输入:arr = [0,1,2,1], k = 1输出:[0]解题思路方法1:对于该题最简单的思路就是把输入的n个整数进行排序,排序之后位于最前面的K个数就是最小的K个数。这种思路的时间复杂度为O(n*log(n))...原创 2021-03-07 14:39:17 · 511 阅读 · 2 评论 -
剑指Offer13:调整数组顺序使奇数位于偶数前面
调整数组顺序使奇数位于偶数之前题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。示例示例1:输入:[1,2,3,4]返回值:[1,3,2,4]示例2:输入:[1,2,3,4,5,6,7]输出:[1,3,5,7,2,4,6]思路:不考虑时间复杂度,最简单的思路就是从头扫描数组,每碰到一个偶数,拿出这个数字,并把位于这个数字后面的..原创 2021-02-28 18:14:14 · 246 阅读 · 2 评论 -
剑指offer40:数组中只出现一次的数字
题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例:输入:数组 {2,4,3,6,2,5,5}输出:4 6在考虑这个题目时,可以先考虑这个数组中只有一个数字只出现了一次,其他数字都出现了两次,怎么找出这个数字?数组中其他的数字都出现了两次,只有一个数字出现了一次就可以使用异或操作,(相同的两个数字异或的结果为0,而0和任意的数异或得到的结果是这个数本身)让数组原创 2021-01-31 22:50:28 · 181 阅读 · 0 评论 -
Leetcode: 删除排序链表中的重复元素(Java)
删除链表中的重复元素题目描述:存在一个按升序排列的链表,给你这个链表的头节点head,请你删除所有重复的元素,使每个元素只出现一次。返回同样按升序排列的结果链表。示例:输入:[1,2,2,3,3]输出:[1,2,3]思路:链表是已经排序的链表,所以重复的元素在链表中的位置也是连续的。要删除链表中重复的元素只需要遍历链表即可。让current指向链表的头节点head,current从链表的头节点开始遍历; 如果current的值和current.next的...原创 2021-03-26 09:05:23 · 2170 阅读 · 6 评论 -
Leetcode:三角形最小路径和(Java)
题目描述原创 2021-02-18 12:05:45 · 280 阅读 · 1 评论 -
Leetcode 34 :在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个元素https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/题目描述:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回[-1, -1]。时间复杂度要求为O(log n)示例:示例1:输入:nums = [5,7.原创 2021-02-12 21:50:21 · 186 阅读 · 0 评论 -
Leetcode:移除元素
一、题目描述给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。为什么返回数值是整数,但输出的答案是数组呢?输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝int len = ...原创 2021-02-07 09:57:39 · 183 阅读 · 0 评论