<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JIMJJU的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JIMJJU</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JIMJJU]]></copyright><item><title><![CDATA[剑指Offer-剩余部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/117188101</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/117188101</guid><author>JIMJJU</author><pubDate>Wed, 26 May 2021 21:09:17 +0800</pubDate><description><![CDATA[剑指Offer-剩余部分机器人的运动范围解题思路1解题思路2调整数组顺序使奇数位于偶数前面解题思路1解题思路2
机器人的运动范围
地上有一个m行n列的方格，从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动，它每次可以向左、右、上、下移动一格（不能移动到方格外），也不能进入行坐标和列坐标的数位之和大于k的格子。例如，当k为18时，机器人能够进入方格 [35, 37] ，因为3+5+3+7=18。但它不能进入方格 [35, 38]，因为3+5+3+8=19。请问该]]></description><category></category></item><item><title><![CDATA[剑指Offer-分治算法部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/117065814</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/117065814</guid><author>JIMJJU</author><pubDate>Sat, 22 May 2021 20:22:15 +0800</pubDate><description><![CDATA[剑指Offer-分治算法部分合并两个排序的链表解题思路1解题思路2
合并两个排序的链表
输入两个递增排序的链表，合并这两个链表并使新链表中的节点仍然是递增排序的。
示例1：
输入：1-&gt;2-&gt;4, 1-&gt;3-&gt;4
输出：1-&gt;1-&gt;2-&gt;3-&gt;4-&gt;4
限制：
0 &lt;= 链表长度 &lt;= 1000

解题思路1
递归分治
var mergeTwoLists = function(l1, l2) {
    if(l1 == null) retu]]></description><category></category></item><item><title><![CDATA[剑指Offer-数学部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/117031741</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/117031741</guid><author>JIMJJU</author><pubDate>Wed, 19 May 2021 21:41:05 +0800</pubDate><description><![CDATA[剑指Offer-数学部分剪绳子解题思路1解题思路2剪绳子 II打印从1到最大的n位数解题思路1解题思路2表示数值的字符串解题思路1解题思路21～n 整数中 1 出现的次数解题思路数字序列中某一位的数字解题思路丑数解题思路1解题思路2
剪绳子
给你一根长度为 n 的绳子，请把绳子剪成整数长度的 m 段（m、n都是整数，n&gt;1并且m&gt;1），每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少？例如，当绳子的长度是8时，我们把它剪成长度分]]></description><category></category></item><item><title><![CDATA[深度优先算法和二分法剩余部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/117020467</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/117020467</guid><author>JIMJJU</author><pubDate>Wed, 19 May 2021 11:07:23 +0800</pubDate><description><![CDATA[剑指Offer-深度优先算法部分矩阵中的路径解题思路
矩阵中的路径
给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中，返回 true ；否则，返回 false 。
单词必须按照字母顺序，通过相邻的单元格内的字母构成，其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
例如，在下面的 3×4 的矩阵中包含单词 “ABCCED”（单词中的字母已标出）。

示例 1：
输入：board = [["A","B","C"]]></description><category></category></item><item><title><![CDATA[剑指Offer-位运算部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/116978487</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/116978487</guid><author>JIMJJU</author><pubDate>Tue, 18 May 2021 16:58:18 +0800</pubDate><description><![CDATA[剑指Offer-位运算部分二进制中1的个数解题思路1解题思路2数组中出现次数超过一半的数字解题思路1解题思路2
二进制中1的个数
请实现一个函数，输入一个整数（以二进制串形式），输出该数二进制表示中 1 的个数。例如，把 9 表示成二进制是 1001，有 2 位是 1。因此，如果输入 9，则该函数输出 2。
示例 1：
输入：00000000000000000000000000001011
输出：3
解释：输入的二进制串 00000000000000000000000000001011 中，共有三位为 '1]]></description><category></category></item><item><title><![CDATA[剑指Offer-排序部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/116978040</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/116978040</guid><author>JIMJJU</author><pubDate>Tue, 18 May 2021 10:26:13 +0800</pubDate><description><![CDATA[剑指Offer-排序部分把数组排成最小的数解题思路
把数组排成最小的数
输入一个非负整数数组，把数组里所有数字拼接起来排成一个数，打印能拼接出的所有数字中最小的一个。
示例 1:
输入: [10,2]
输出: "102"
示例 2:
输入: [3,30,34,5,9]
输出: "3033459"

解题思路
利用sort函数，因为sort函数在排序字符的时候会自动先判断两个字符的第一位，在判断第二位等等。
sort(a,b) =&gt; a-b    若a-b&lt;0 则升序排列   这个序指的是序号，因]]></description><category></category></item><item><title><![CDATA[剑指Offer-堆部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/116901434</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/116901434</guid><author>JIMJJU</author><pubDate>Sun, 16 May 2021 20:11:49 +0800</pubDate><description><![CDATA[剑指Offer-堆部分注释(堆排序解析)最小的k个数解题思路1解题思路2数据流中的中位数解题思路1解题思路2解题思路3
注释(堆排序解析)
JS堆排序
堆是一个完全二叉树。
完全二叉树： 二叉树除开最后一层，其他层结点数都达到最大，最后一层的所有结点都集中在左边（左边结点排列满的情况下，右边才能缺失结点）。
大顶堆：根结点为最大值，每个结点的值大于或等于其孩子结点的值。
小顶堆：根结点为最小值，每个结点的值小于或等于其孩子结点的值。
堆的存储： 堆由数组来实现，相当于对二叉树做层序遍历。

①如果想要降序序]]></description><category></category></item><item><title><![CDATA[剑指Offer-树部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/116767230</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/116767230</guid><author>JIMJJU</author><pubDate>Thu, 13 May 2021 21:47:12 +0800</pubDate><description><![CDATA[剑指Offer-树部分重建二叉树解题思路树的子结构解题思路二叉树的镜像解题思路1解题思路2对称的二叉树解题思路从上到下打印二叉树解题思路从上到下打印二叉树 II解题思路从上到下打印二叉树 III解题思路
重建二叉树
输入某二叉树的前序遍历和中序遍历的结果，请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
例如，给出
前序遍历 preorder = [3,9,20,15,7]
中序遍历 inorder = [9,3,15,20,7]
返回如下的二叉树：
    3
   / \
  9 ]]></description><category></category></item><item><title><![CDATA[剑指Offer-递归部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/116720474</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/116720474</guid><author>JIMJJU</author><pubDate>Wed, 12 May 2021 21:47:39 +0800</pubDate><description><![CDATA[剑指Offer-递归部分重建二叉树解题思路斐波那契数列解题思路青蛙跳台阶问题解题思路数值的整数次方原始想法解题思路1解题思路2
重建二叉树
输入某二叉树的前序遍历和中序遍历的结果，请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
例如，给出
前序遍历 preorder = [3,9,20,15,7]
中序遍历 inorder = [9,3,15,20,7]
返回如下的二叉树：
    3
   / \
  9  20
    /  \
   15   7

解题思路
首先前序/后序遍历]]></description><category></category></item><item><title><![CDATA[剑指Offer-哈希表部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/116695186</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/116695186</guid><author>JIMJJU</author><pubDate>Wed, 12 May 2021 18:43:39 +0800</pubDate><description><![CDATA[剑指Offer-哈希表部分数组中重复的数字解题思路1原地交换最长不含重复字符的子字符串解题思路1第一个只出现一次的字符解题思路1解题思路2解题思路3
数组中重复的数字
找出数组中重复的数字。
在一个长度为 n 的数组 nums 里的所有数字都在 0～n-1 的范围内。数组中某些数字是重复的，但不知道有几个数字重复了，也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
示例 1：
输入：
[2, 3, 1, 0, 2, 5, 3]
输出：2 或 3 

解题思路1
哈希表
var findRepea]]></description><category></category></item><item><title><![CDATA[剑指Offer-链表部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/116646885</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/116646885</guid><author>JIMJJU</author><pubDate>Tue, 11 May 2021 21:19:26 +0800</pubDate><description><![CDATA[剑指Offer链表部分从尾到头打印链表删除链表的节点解题思路1解题思路2链表中倒数第k个节点解题思路反转链表解题思路1解题思路2复杂链表的复制解题思路1两个链表的第一个公共节点解题思路1解题思路2
从尾到头打印链表
输入一个链表的头节点，从尾到头反过来返回每个节点的值（用数组返回）。
示例 1：
输入：head = [1,3,2]
输出：[2,3,1]

var reversePrint = function(head) {
    if(head == null){
        return []
 ]]></description><category></category></item><item><title><![CDATA[剑指Offer-队列部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/116642613</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/116642613</guid><author>JIMJJU</author><pubDate>Tue, 11 May 2021 11:01:53 +0800</pubDate><description><![CDATA[剑指Offer-队列部分滑动窗口的最大值解题思路1解题思路2
滑动窗口的最大值
给定一个数组 nums 和滑动窗口的大小 k，请找出所有滑动窗口里的最大值。
示例:
输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3
输出: [3,3,5,5,6,7] 
解释: 
  滑动窗口的位置                最大值
---------------               -----
[1  3  -1] -3  5  3  6  7       3
 1 [3  -1 ]]></description><category></category></item><item><title><![CDATA[剑指Offer-栈部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/116607673</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/116607673</guid><author>JIMJJU</author><pubDate>Mon, 10 May 2021 21:13:04 +0800</pubDate><description><![CDATA[剑指Offer-栈部分用两个栈实现队列解题思路包含min函数的栈解题思路队列的最大值解题思路
用两个栈实现队列
用两个栈实现一个队列。队列的声明如下，请实现它的两个函数 appendTail 和 deleteHead ，分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素，deleteHead 操作返回 -1 )
示例 1：
输入：
["CQueue","appendTail","deleteHead","deleteHead"]
[[],[3],[],[]]
输出：[null,null]]></description><category></category></item><item><title><![CDATA[剑指Offer-数组部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/116569095</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/116569095</guid><author>JIMJJU</author><pubDate>Mon, 10 May 2021 18:57:58 +0800</pubDate><description><![CDATA[剑指Offer-数组部分二维数组的查找解题思路1解题思路2
二维数组的查找
在一个 n * m 的二维数组中，每一行都按照从左到右递增的顺序排序，每一列都按照从上到下递增的顺序排序。请完成一个高效的函数，输入这样的一个二维数组和一个整数，判断数组中是否含有该整数
示例:
现有矩阵 matrix 如下：
[
  [1,   4,  7, 11, 15],
  [2,   5,  8, 12, 19],
  [3,   6,  9, 16, 22],
  [10, 13, 14, 17, 24],
  [18,]]></description><category></category></item><item><title><![CDATA[剑指Offer-字符串部分]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/116538773</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/116538773</guid><author>JIMJJU</author><pubDate>Sun, 09 May 2021 19:01:51 +0800</pubDate><description><![CDATA[剑指Offer-字符串部分翻转单词顺序解题思路1解题思路2左旋转字符串解题思路1
翻转单词顺序
输入一个英文句子，翻转句子中单词的顺序，但单词内字符的顺序不变。为简单起见，标点符号和普通字母一样处理。例如输入字符串"I am a student. “，则输出"student. a am I”。
示例 1：
输入: "the sky is blue"
输出: "blue is sky the"
示例 2：
输入: "  hello world!  "
输出: "world! hello"
解释: 输入字符串可]]></description><category></category></item><item><title><![CDATA[《程序员面试金典》面试题01部分（JavaScript）]]></title><link>https://blog.youkuaiyun.com/JIMJJU/article/details/116243798</link><guid>https://blog.youkuaiyun.com/JIMJJU/article/details/116243798</guid><author>JIMJJU</author><pubDate>Wed, 28 Apr 2021 21:28:05 +0800</pubDate><description><![CDATA[Leetcode刷题字符串部分（JavaScript）字符串注意点判定字符是否唯一方法1方法2方法3判定是否互为字符重排方法1方法2旋转矩阵方法1方法2方法3
字符串注意点
字符串本质是字符类型的一维数组,但专属于数组的方法并不适用
判定字符是否唯一
实现一个算法，确定一个字符串 s 的所有字符是否全都不同。
示例 1：
输入: s = “leetcode”
输出: false
示例 2：
输入: s = “abc”
输出: true
限制：
0 &lt;= len(s) &lt;= 100
如果你不使用额]]></description><category></category></item></channel></rss>