leetcode刷题
学习噢
这个作者很懒,什么都没留下…
展开
-
二叉树前中后遍历 递归 迭代
1.二叉树前序遍历 递归class Solution { ArrayList<Integer> list = new ArrayList<>(); public List<Integer> preorderTraversal(TreeNode root) { if(root!=null){ list.add(root.val); preorderTraversal(root.left);原创 2021-04-08 20:22:20 · 53 阅读 · 0 评论 -
leet217. 存在重复元素
217. 存在重复元素难度简单376收藏分享切换为英文接收动态反馈给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回true。如果数组中每个元素都不相同,则返回false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true解法一:使用哈希集合 将元素放入集合中,自动删除了重复...原创 2021-03-31 10:13:36 · 52 阅读 · 0 评论 -
leet496. 下一个更大元素 I
496. 下一个更大元素 I难度简单393收藏分享切换为英文接收动态反馈给你两个没有重复元素的数组nums1和nums2,其中nums1是nums2的子集。请你找出nums1中每个元素在nums2中的下一个比其大的值。nums1中数字x的下一个更大元素是指x在nums2中对应位置的右边的第一个比x大的元素。如果不存在,对应位置输出-1。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输...原创 2021-03-30 15:12:44 · 73 阅读 · 0 评论 -
leet933. 最近的请求次数
933. 最近的请求次数难度简单79收藏分享切换为英文接收动态反馈写一个RecentCounter类来计算特定时间范围内最近的请求。请你实现RecentCounter类:RecentCounter()初始化计数器,请求数为 0 。 int ping(int t)在时间t添加一个新请求,其中t表示以毫秒为单位的某个时间,并返回过去3000毫秒内发生的所有请求数(包括新请求)。确切地说,返回在[t-3000, t]内发生的请求数。保证每次对ping的调用都...原创 2021-03-20 20:22:58 · 70 阅读 · 0 评论 -
leet206. 反转链表
206. 反转链表难度简单1610收藏分享切换为英文接收动态反馈反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?图示:解1: public ListNode reverseList(ListNode head) { if(head == null) ...原创 2021-03-19 16:59:35 · 62 阅读 · 0 评论 -
leet203. 移除链表元素
203. 移除链表元素难度简单553收藏分享切换为英文接收动态反馈给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val == val的节点,并返回新的头节点。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]思路class Solution { public ListNode ...原创 2021-03-19 15:05:25 · 59 阅读 · 0 评论 -
leet27. 移除元素 双指针
给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中示例 1:输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nu...原创 2021-03-18 20:30:46 · 63 阅读 · 0 评论 -
leet283. 移动零
283. 移动零难度简单997收藏分享切换为英文接收动态反馈给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。class Solution { public void moveZeroes(int[] nums) { int index=0; // in...原创 2021-03-18 17:19:17 · 43 阅读 · 0 评论 -
leet485. 最大连续 1 的个数
485. 最大连续 1 的个数难度简单216收藏分享切换为英文接收动态反馈给定一个二进制数组, 计算其中最大连续 1 的个数。示例:输入:[1,1,0,1,1,1]输出:3解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.提示:输入的数组只包含0和1。 输入数组的长度是正整数,且不超过 10,000。class Solution { public int findMaxConsecutiveOnes(int[]...原创 2021-03-18 16:41:31 · 55 阅读 · 0 评论