摘要: 话不多说,先上题目 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。 示例: 给定一个链表: 1- 阅读全文
posted @ 2021-08-09 23:48 超级鲨鱼辣椒 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 话不多说,先上题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 示例: 输入:nums = [1,2,3,4] 输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。 来源:力扣(LeetCode) class 阅读全文
posted @ 2021-08-09 22:49 超级鲨鱼辣椒 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 话不多说,先上题目 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动 示例 1: 输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的 阅读全文
posted @ 2021-08-09 22:20 超级鲨鱼辣椒 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 话不多说,先上题目 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 示例 1: 输入: n = 1 输出: [1,2,3,4,5,6,7,8,9] 说明: 用返回一个整数列表来代替打印 n 为正整数 来源:力扣(Lee 阅读全文
posted @ 2021-08-09 21:30 超级鲨鱼辣椒 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 话不多说,先上题目 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为 汉明重量).)。 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论 阅读全文
posted @ 2021-08-09 17:45 超级鲨鱼辣椒 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 话不多说,先上题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 示例 1: 输入:[3,4,5,1,2] 输出:1 示例 阅读全文
posted @ 2021-08-09 17:36 超级鲨鱼辣椒 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 话不多说,先上题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数 阅读全文
posted @ 2021-08-09 17:28 超级鲨鱼辣椒 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 书接上文:浅谈 HashMap(二):put 插入方法源码分析 本文基于 JDK1.8 是不是经常被面试官问到:为什么HashMap的容量必须为2的幂次方呢? 希望此文可以帮助你找到答案。 要回答上面的问题前,我们还得从其它方面谈起👇 众所周知,HashMap 的底层是数组 + 链表,先根据 ke 阅读全文
posted @ 2021-08-09 16:40 超级鲨鱼辣椒 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 本文基于 JDK1.8 我们都知道 HashMap 内部有个属性负载因子用来扩容,那么什么时候才会扩容呢? 源码中还有一个属性 threshold 👇 /** * The next size value at which to resize (capacity * load factor). */ 阅读全文
posted @ 2021-08-09 15:09 超级鲨鱼辣椒 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 本文基于 JDK1.8 话不多说,看看源码怎么肥四呢 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { ... ... if (p.hash == hash && ((k = p.key) 阅读全文
posted @ 2021-08-09 14:51 超级鲨鱼辣椒 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 接上文:浅谈 HashMap(一):数据结构底层实现方式 本文基于 JDK1.8 这节讲讲 HashMap 的 put 方法,看似简单的一个存值方法,实则细节满满,且听我娓娓道来 话不多说,先看看源码👇 public V put(K key, V value) { return putVal(ha 阅读全文
posted @ 2021-08-09 14:31 超级鲨鱼辣椒 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 本文基于 JDK1.8 话不多说,先来个图 众所周知,HashMap 的底层实现是数组+链表+红黑树,那么到底是怎样的呢?我们从源码中看看👇 先来点题外话,如果我们想在 Java 中存储一个数据的时候具体是怎么存的呢?这个问题初看大家会觉得有点废话的意思,且听我细说。我们知道 Map 存储的是 k 阅读全文
posted @ 2021-08-09 11:45 超级鲨鱼辣椒 阅读(71) 评论(0) 推荐(0) 编辑