力扣
MM_Kong
菜狗路过
展开
-
力扣_Hot_二叉树
简单1.二叉树的中序遍历给定一个二叉树的根节点 root ,返回它的 中序 遍历。class Solution { public List<Integer> inorderTraversal(TreeNode root) { List<Integer> result = new ArrayList<>(); // 递归 /* inorder(root, result); retu原创 2022-02-04 15:59:03 · 119 阅读 · 0 评论 -
力扣_Hot 8/100
题目给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例输入:head = [3,2,0,-4], pos = 1输出:true原创 2022-01-13 22:58:17 · 75 阅读 · 0 评论 -
力扣_Hot 7/100
题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例输入: [2,2,1]输出: 1class Solution { public int singleNumber(int[] nums) { // 异或运算:A^A=0,0^A=A (这个方法可太秀了!!) int result = 0; for (int i=原创 2022-01-13 22:30:30 · 138 阅读 · 0 评论 -
力扣_Hot 6/100
题目假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶class Solution { public int climbStairs(int n) { /* 斐波那契数列:F(n) = F(n-1) + F(n-2) 解决方式:递归方法、非递归方法原创 2022-01-13 22:16:07 · 83 阅读 · 0 评论 -
力扣_Hot 5/100
题目给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。class Solution { public int maxSubArray(int[] nums) { /* sum:记录当前加和; max_sum:最大加和原创 2022-01-12 22:19:10 · 160 阅读 · 0 评论 -
力扣_Hot 1/100
题目描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。class Solution { public int[]原创 2022-01-10 22:34:42 · 155 阅读 · 0 评论 -
力扣_Hot 2/100
题目给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.class Solution { public ListNode addTwoNumbers(ListNode l1, ListNo原创 2022-01-11 21:43:32 · 222 阅读 · 0 评论 -
力扣_Hot 3/100
题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合示例输入:s = “()”输出:trueclass Solution { public boolean isValid(String s) { if (s.length()<2 || s.length()%2 != 0) { // 字符串长度为1,输出为false;长度为0,输出为tr原创 2022-01-11 22:19:41 · 86 阅读 · 0 评论 -
力扣_Hot 4/100
题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) { ListNode pre = new ListNode(); ListNode cur = pre;原创 2022-01-12 20:45:32 · 104 阅读 · 0 评论