LeetCode
文章平均质量分 66
LeetCode
Hello3q3q
某大厂底层员工
展开
-
Java中length和length()的区别
刷题的时候遇到了这个小问题,觉得有必要记录下来。length不是方法,是属性,数组的属性,用于统计数组的长度;length()是方法,字符串String类的一个方法,用于统计字符串的长度;size()是集合泛型的方法,用于统计集合中元素的数量。总结:只要是方法就带括号,是属性就不用带,和调用我们自己构造的类是一样的。...原创 2021-04-06 08:40:24 · 371 阅读 · 0 评论 -
LeetCode148. 排序链表
1. 题目要求给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表。进阶要求:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?2. 解题思路题目要求时间复杂度分别为O(nlogn),根据时间复杂度自然想到二分法,从而联想到归并排序;归并排序具体实现可参考我之前的博客,这里可以用一张图表示归并的过程。解题思路主要分3步:首先找到链表的中点;然后递归对左右两侧排序;最后将排序好的链表进行合并。注意:由于这里是对链表进行归并排原创 2021-03-25 14:30:03 · 77 阅读 · 0 评论 -
剑指offer68-1(LeetCode235题)二叉搜索树的最近公共祖先
0. 题目来源来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree1. 题目描述问题:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。最近公共祖先的定义:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。例如:给定如下二叉搜索原创 2021-03-11 10:40:46 · 94 阅读 · 0 评论 -
LeetCode160. 相交链表问题的三种解法
注: 这也是程序员面试金典中的02.07题1. 问题描述及分析如果只学过java,而不了解指针的话其实难以理解题目,为什么示例1中的值为1的节点不是相交的节点呢?其实可以这样理解,链表A和B中虽然都有值为1的节点,但这两个节点存储的位置不同,比如A中值为1的节点存储的位置为0x33ff,B中值为1的节点存储的位置为0x0011,但是从8开始,所有的节点存储的值和位置都相同,所以值为8的节点是相交的起始节点。Java中判断两个节点是否相同可以直接用==判断。2. 解题思路及代码思路参考:作.原创 2021-02-26 10:09:10 · 267 阅读 · 2 评论 -
LeetCode1290. 二进制链表转整数(移位操作)
1. 题目描述给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的 十进制值 。示例一:输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5)示例二输入:head = [0]输出:0示例三输入:head = [1]输出:12. 解题思路及答案这里只说用移位操作实现的思路,其他还有很多方法,注意执行移位操作可以想象成,先把数变成2进制,然后移位,再变成1原创 2021-02-24 21:59:30 · 117 阅读 · 0 评论 -
剑指 Offer 10. 斐波那契数列和青蛙跳台次数问题
0. 题目来源来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof1. 题目描述写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。原创 2021-02-01 10:08:39 · 98 阅读 · 0 评论 -
一起刷LeetCode 347. 前 K 个高频元素
1. 优先队列的经典问题在N个元素中选取排名前M个元素。这里有两个思路:一是对N个元素按优先级进行排序,然后选取,时间复杂度为NlogN;二是使用优先队列,时间复杂度为NlogM。在N远大于M时,使用优先队列的方法速度会远大于前者。假设有N个人参加数学考试,要取前M名,简单说一下第二种方法的步骤:将前M个人数学成绩放入优先队列;选取第M+1个人的数学成绩,比较该成绩与队列中最低分,如果大于最低分,就用该成绩替换最低分,以此类推;当这N个人的数学成绩都扫描完后,优先队列中存放的就是排原创 2020-11-01 21:21:07 · 91 阅读 · 0 评论 -
一起刷Leetcode 349-350两个数组的交集
1. 第349题1. 题目简介1.2 题目分析需要注意的是计算出交集是不能包含重复元素,所以可以考虑先把交集求出来,然后用set集合过滤。这种方法比较笨,也比较好理解。方法一: 先把nums1过滤掉重复元素,然后遍历nums2,...原创 2020-10-30 19:58:37 · 54 阅读 · 0 评论 -
一起刷LeetCode 804. 唯一摩尔斯密码词
1. 题目概述原文链接国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a"对应".-", "b"对应 "-...","c"对应"-.-.", 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-",".原创 2020-10-30 18:29:08 · 155 阅读 · 0 评论 -
一起刷剑指 Offer 03. 数组中重复的数字
1. 题目描述在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。2.题目分析注意标黄的地方,一个是数组中存放的数字取值范围,在[0,n-1]之间;一个是目标,及时数组中有多个重复数字题目来源:力扣...原创 2020-10-27 11:36:10 · 56 阅读 · 0 评论 -
一起刷LeetCode 203. 移除链表元素
1. 题目要求2. 题目分析首先看一下题目给的解题框架:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode removeElements(ListNode head, int v原创 2020-10-26 10:37:35 · 52 阅读 · 0 评论