自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 Leetcode-287-寻找重复数-Floyd判圈算法-快慢指针-二分法-中等-Java实现

题目:方法一思路: 用 Floyd 判圈算法来做。 首先,把数组写成链表。从头遍历数组,通过元素值指向下一个遍历位置,能找到两个不同的索引(但是值相等)指向同一索引,这就成环。 此时,环入口就是重复元素。 然后,如何求得环入口呢?声明一个快指针和一个慢指针,从起点出发,快指针每次走两步,慢指针每次走一步,如果存在环的话,此时快慢指针会相遇。 相遇之后,让慢指针回到出发点,接下来快慢指针以相同速度一起走,再次相遇之处就是环形的入口。 LeeCode题解-287寻找重复数-有找环入口动画 Le

2020-07-31 13:01:26 288

原创 LeetCode-快乐数-快慢指针-龟兔赛跑-链表是否有环-Java实现

题目:编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。示例:输入:19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 = 1来源:力扣(LeetCode)

2020-07-30 23:36:17 237

原创 LeetCode-169-多数元素-简单-Java实现

题目:方法一思路:候选人(cand_num)初始化为nums[0],票数count初始化为1。当遇到与cand_num相同的数,则票数count = count + 1,否则票数count = count - 1。当票数count为0时,更换候选人,并将票数count重置为1。遍历完数组后,cand_num即为最终答案。为何这行得通呢?投票法是遇到相同的则票数 + 1,遇到不同的则票数 - 1。且“多数元素”的个数> ⌊ n/2 ⌋,其余元素的个数总和<= ⌊ n/2 ⌋。因

2020-07-30 11:29:54 279

原创 LeetCode-162-寻找峰值-中等-Java实现

题目:峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函数应该返回其索引 2。示例 2:输入: nums = [1,2,1,3,5,6,4]输出: 1 或 5 解释: 你的函数可以返

2020-07-29 14:25:26 190

原创 LeetCode-151-翻转字符串里的单词-中等-Java实现

题目:给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: "the sky is blue"输出: "blue is sky the"示例 2:输入: " hello world! "输出: "world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: "a good example"输出: "example good a"解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。说

2020-07-29 11:52:44 255 1

原创 LeetCode-094-二叉树的中序遍历-中等-Java实现

题目:给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal方法一思路:递归代码如下:List<Integer> res = new ArrayList<&g

2020-07-29 00:00:34 322

原创 LeetCode-滑动窗口-最大子数组之和为k-中等-Java实现-未完待续

题目:思路:哈希表和累积和。为什么(sum - k)存在,代表子数组和等于k?—我理解不了,等等我我是想要练习滑动窗口的,我觉得如果用哈希表的话,感觉没有用到滑动窗口。。再等我练习一下吧。我一开始是想要用start-end两个指针做一个滑动窗口,但是因为数组中不全是正数,所以实现不了,但是应该还是可以的,我再研究研究。代码如下:/** * 最大子数组之和为k * @param nums * @param k * @return */ public static int

2020-07-26 23:57:56 251

原创 LeetCode-209-滑动窗口-长度最小的子数组-中等-Java实现

题目:给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。进阶:如果你已经完成了 O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。来源:力扣(LeetCode)链接:https://leetcode-cn.com/prob

2020-07-25 21:56:56 233

原创 LeetCode-27-二叉树的所有路径-简单-Java实现

题目:给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-paths思路:辅助函数递归代码如下:/**

2020-07-24 15:12:34 140

原创 LeetCode-144-二叉树的中序遍历-中等-Java实现

题目:给定一个二叉树,返回它的 前序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]进阶: 递归算法很简单,你可以通过迭代算法完成吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-preorder-traversal方法一思路:递归算法。代码如下:List<Integer> res = new ArrayLi

2020-07-18 23:28:32 149

原创 LeetCode-075-颜色分类-中等-Java实现

题目:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、2的排序,重写当前数组。你能想出一个仅使用常数空间的

2020-07-18 22:38:40 136

原创 LeetCode-070-爬楼梯-简单-Java实现

题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。4. 1 阶 + 1 阶 + 1 阶5. 1 阶 + 2 阶6. 2 阶 + 1 阶来源:力扣(LeetCode)链接:https://leetcod

2020-07-18 18:43:03 186

原创 LeetCode-058-最后一个单词的长度-简单-Java实现

题目:给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: "Hello World"输出: 5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/length-of-last-word方法一思路:多多利用字符串的内置函数会

2020-07-18 14:59:01 135

原创 LeetCode-434-字符串中的单词数-简单-Java实现

题目:统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: "Hello, my name is John"输出: 5解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/number-of-segments-in-a-string思路:这道题简单在,只要注意空格,就可以。利用字

2020-07-18 14:42:43 166

原创 LeetCode-459-重复的子字符串-简单-Java实现

题目:给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False示例 3:输入: "abcabcabcabc"输出: True解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。)来源:力扣(LeetCode)链接:https:/

2020-07-17 00:19:24 175

转载 前端-做一个简单的网页

HTML不是一门编程语言,而是一种用于定义内容结构的标记语言。HTML 由一系列的元素(elements)组成,这些元素可以用来包围不同部分的内容,使其以某种方式呈现或者工作。 一对标签( tags)可以为一段文字或者一张图片添加超链接,将文字设置为斜体,改变字号,等等。关于大小写和空格的提示文中所有的文件夹名和文件都使用小写字母,且没有空格。最好在一开始就养成习惯,文件夹和文件名使用小写,用短横线而不是空格来分隔。可以避免许多问题网站结构最基本、最常见的结构是:一个主页、一个图片文件夹、一个样

2020-07-16 21:20:51 6843 1

原创 LeetCode-344-反转字符串-简单-Java实现

题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-strin

2020-07-16 00:04:15 177

原创 LeetCode-102-二叉树的层序遍历-中等-Java实现

题目:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal思路:

2020-07-15 23:44:15 200

原创 LeetCode-205-同构字符串-简单-Java实现

题目:给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。示例 1:输入: s = "egg", t = "add"输出: true示例 2:输入: s = "foo", t = "bar"输出: false示例 3:输入: s = "paper", t = "title"输出: true说明:你可

2020-07-15 00:07:05 248

原创 LeetCode-111- 二叉树的最小深度-简单-Java实现

题目:二叉树的最小深度给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2.代码如下:/** * 二叉树的最小深度 * @param root * @return */ public int minDepth (

2020-07-14 10:40:00 135

原创 LeetCode021-合并两个有序链表-简单-Java实现

题目:合并两个有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4代码如下:/** * 合并两个有序链表 * @param l1 * @param l2 * @return */ public ListNode mergeTwoLists (ListNode l1, ListN

2020-07-13 14:45:55 181

原创 LeetCode-104-二叉树的最大深度-简单-Java实现

题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-depth-of-bina

2020-07-13 14:01:11 185

原创 LeetCode147-对链表进行插入排序-中等-Java实现

题目:对链表进行插入排序。插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。示例 1:输入: 4->2->1->3输出: 1->

2020-07-13 13:54:11 261

原创 LeetCode024-两两交换链表中的节点-中等-Java实现

题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs思路:增加一个头节点,这样就可以统一处理画图,交换过程主要有三步代码如下:/** * 链表两两交换节点 *

2020-07-12 00:26:16 229

原创 LeetCode-101-对称二叉树-简单-Java实现

给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/symmetric-tree代码如下:/** * 相同二叉树 * @param root * @return */ public bo

2020-07-11 15:01:58 280

原创 LeetCode100-相同的树-简单-Java实现

**题目:**给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1/ \ / 2 3 2 3 [1,2,3], [1,2,3]输出: true来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/same-tree代码如下:/** * 相同的树 * @param p *

2020-07-11 11:17:51 193

原创 LeetCode019-删除链表的倒数第N个节点-中等-Java实现

题目:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list思路:有点类似于移

2020-07-11 11:09:30 240

原创 剑指 Offer 06. 从尾到头打印链表-Java实现

剑指 Offer 06. 从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)方法一:栈/** * 从尾到头打印链表 * 栈 * @param head * @return */ public int[] reversePrint (ListNode head) { // int[] nums = null; if (head == null) return null; Stack<Integer> stack = ne

2020-07-09 23:47:06 129

原创 leetcode876 链表的中间节点-Java实现

给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = N

2020-07-09 19:50:46 121

原创 leetcode-141-环形链表-简单-Java实现

给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。转自力扣官网使用两个指针,一个快指针,一个慢指针;快的每次走两步,慢的每次走一步,如果有环,那么快的肯定可以追上慢点,两者相等代码实现: /** * 链表是否有环 * 快慢指针

2020-07-09 15:39:35 167

原创 LeetCode-203-移除链表元素-简单-Java实现

删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5代码如下 /** * 删除链表中等于给定值 val 的所有节点 * @param head * @param val * @return */public ListNode removeElements (ListNode head, int val) { /* *

2020-07-08 23:32:39 202

原创 LeetCode237-不知道头节点的前提下,删除指定节点-简单-Java实现

思路:把后继节点的值复制到当前节点,然后修改指针 /** * 未知头结点的前提下,删除指定节点 * @param node */public void deleteListNode (ListNode node) { /* Q:只给定被删除节点,如何得知链表 * A:换个思路,删除节点一定要得知前驱 * * */ ListNode next = node.next; // 把后继节点的值复制到当前节点中 node.val = next.val; node.next =

2020-07-08 19:00:11 359

原创 LeetCode-234-回文链表-简单-Java实现

方法一:反转前半部分 /** * 回文链表 * 反转前半部分 * 两条链条 * @param head * @return */public boolean isPalindrome (ListNode head) { if (head ==null || head.next == null) return true; ListNode quick = head; ListNode slow = head; // 快慢指针,快指针每次走两步,慢指针每次走一步 //

2020-07-08 18:56:15 195

原创 LeetCode206-逆转链表-简单-Java实现

为什么测试不通过啊public class LeetCode206 {/** * 用头插法 反转链表 * 新链表的头结点 * @param head * @return */public ListNode reverseList (ListNode head) { if (head == null || head.next == null) return null; ListNode cur = head.next; // 原链表 cur指向第一个节点 ListNode nod

2020-07-04 17:01:55 177 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除