<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[smallplum123的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/smallplum123</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; smallplum123]]></copyright><item><title><![CDATA[leetcode hot100 之 搜索插入位置]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/139639753</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/139639753</guid><author>smallplum123</author><pubDate>Thu, 13 Jun 2024 00:34:03 +0800</pubDate><description><![CDATA[给定一个排序数组和一个目标值，在数组中找到目标值，并返回其索引。如果目标值不存在于数组中，返回它将会被按顺序插入的位置。输入: nums = [1,3,5,6], target = 5输出: 2原题链接：https://leetcode.cn/problems/search-insert-position/]]></description><category></category></item><item><title><![CDATA[leetcode hot100 之 编辑距离]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/139639083</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/139639083</guid><author>smallplum123</author><pubDate>Wed, 12 Jun 2024 23:31:41 +0800</pubDate><description><![CDATA[给你两个单词word1和word2， 请返回将word1转换成word2所使用的最少操作数。输入：word1 = “horse”, word2 = “ros”输出：3解释：horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose (删除 ‘r’)rose -> ros (删除 ‘e’)原题链接：https://leetcode.cn/problems/edit-distance/]]></description><category></category></item><item><title><![CDATA[leetcode hot100 之 最长公共子序列]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/139638748</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/139638748</guid><author>smallplum123</author><pubDate>Wed, 12 Jun 2024 23:07:29 +0800</pubDate><description><![CDATA[给定两个字符串text1和text2，返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ，返回 0。一个字符串的 子序列 是指这样一个新的字符串：它是由原字符串在不改变字符的相对顺序的情况下删除某些字符（也可以不删除任何字符）后组成的新字符串。示例 1：输入：text1 = “abcde”, text2 = “ace”输出：3解释：最长公共子序列是 “ace” ，它的长度为 3。]]></description><category></category></item><item><title><![CDATA[leetcode 43. 字符串相乘]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/139578611</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/139578611</guid><author>smallplum123</author><pubDate>Mon, 10 Jun 2024 16:46:57 +0800</pubDate><description><![CDATA[给定两个以字符串形式表示的非负整数num1和num2，返回num1和num2的乘积，它们的乘积也表示为字符串形式。注意：不能使用任何内置的 BigInteger 库或直接将输入转换为整数。原题链接：https://leetcode.cn/problems/multiply-strings/description/示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”]]></description><category></category></item><item><title><![CDATA[leetcode hot100 补充]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/139577001</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/139577001</guid><author>smallplum123</author><pubDate>Mon, 10 Jun 2024 15:03:05 +0800</pubDate><description><![CDATA[除了 hot100 外，还有一些常见的题目，也是值得我们复习的。我们新开一个 补充 栏目，进行梳理。]]></description><category></category></item><item><title><![CDATA[leetcode 40. 组合总和 II]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/139576511</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/139576511</guid><author>smallplum123</author><pubDate>Mon, 10 Jun 2024 14:57:36 +0800</pubDate><description><![CDATA[给你一个的整数数组candidates和一个目标整数target，找出candidates中可以使数字和为目标数target的不同组合 ，并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates中的 同一个 数字可以。如果至少一个数字的被选数量不同，则两种组合是不同的。对于给定的输入，保证和为target的不同组合数少于 150 个。]]></description><category></category></item><item><title><![CDATA[搬砖神器 VScode]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/126568240</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/126568240</guid><author>smallplum123</author><pubDate>Sat, 03 Sep 2022 21:49:35 +0800</pubDate><description><![CDATA[记得在实验室的时候，有一位师兄是忠实 vim 党，鄙视一些 ide。的确，熟练掌握各种 vim 命令的大神，用起 vim 来可以秀得天花乱坠，vim 的轻巧也使得启动变得非常的轻易。不过 ide 也有 ide 的好处，就好比一把好的武器，能够使你更好的发挥你的功夫。即使你的功夫功底已经很深了，赤手空拳也能展示你的实力，但如果多一把好的武器，能够让你事半功倍，岂不是更美滋滋。]]></description><category></category></item><item><title><![CDATA[leetcode hot100 之 找到所有数组中消失的数字]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/125364319</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/125364319</guid><author>smallplum123</author><pubDate>Sun, 19 Jun 2022 23:46:21 +0800</pubDate><description><![CDATA[给定一个长度为 n 数组，其数字由 [1, n] 组成。在 [1, n] 当中，有重复出现的数字，也有从未出现的数字。请找出所有从未出现的数字。原题链接： https://leetcode.cn/problems/find-all-numbers-disappeared-in-an-array/由于所有数字均在 [1, n] 的范围内，我们可以通过打 tag 的方式来标记，一个数字是否出现。
举个例子，比如数组 nums = [4,3,2,7,8,2,3,1]，长度 n = 8。
对于数字 4，我们找到其下]]></description><category></category></item><item><title><![CDATA[leetcode hot100 之 完全平方数]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/125363910</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/125363910</guid><author>smallplum123</author><pubDate>Sun, 19 Jun 2022 23:16:03 +0800</pubDate><description><![CDATA[给定一个数 n，返回和为 n 的完全平方数的最少数量。
完全平方数指的是 一个整数，其值正好等于另一个整数的平方。如 1、4、9、16、25 等。原题链接：https://leetcode.cn/problems/perfect-squares/动态规划。先上公式再解释
dp[i]=1+min⁡j=1idp[i−j∗j] dp[i] = 1 + \min^{\sqrt i}_{j=1} dp[i - j*j] dp[i]=1+j=1mini​​dp[i−j∗j]
对于数字n，如果有某个数字 j，j * j ]]></description><category></category></item><item><title><![CDATA[leetcode hot100 之 搜索二维矩阵II]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/125036318</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/125036318</guid><author>smallplum123</author><pubDate>Sun, 29 May 2022 21:09:00 +0800</pubDate><description><![CDATA[题目
给定一个矩阵和一个目标值，请判断目标值是否在矩阵当中。该矩阵有如下特征：
每列从上往下升序排列；
每行从左往右升序排列。


输入：matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
输出：true

原题链接：https://leetcode.cn/problems/search-a-2d-matrix-ii/
思路
从左下角开始出发，如果目标值比当前值小]]></description><category></category></item><item><title><![CDATA[leetcode hot100 之 除自身以外数组的乘积]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/125033089</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/125033089</guid><author>smallplum123</author><pubDate>Sun, 29 May 2022 17:20:12 +0800</pubDate><description><![CDATA[题目
给定一个数组 nums，返回一个数组 answer，其中 answer[i] 为 nums 除 nums[i] 外所有数字的乘积。

输入: nums = [1,2,3,4]
输出: [24,12,8,6]

原题链接：https://leetcode.cn/problems/product-of-array-except-self/
思路
借用一下 Krahets 的图

从上面的图可以看到，
res[0] = (1) x (num[1] x num[2] x … x num[n-1])
res[1]]></description><category></category></item><item><title><![CDATA[leetcode hot100 之 最大正方形]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/125031549</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/125031549</guid><author>smallplum123</author><pubDate>Sun, 29 May 2022 15:51:06 +0800</pubDate><description><![CDATA[题目
给一个只包含 0 和 1 的 metrix 中，找到只包含 1 的最大正方形，返回其面积。


输入：matrix = [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]
输出：4

原题链接：https://leetcode.cn/problems/maximal-square/
思路
动态规划。
这道题难点在于 找到转移方程。
设 dp(i, j) 表示以 (i, j) ]]></description><category></category></item><item><title><![CDATA[leetcode hot100 之 数组中的第K个最大元素]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/124962570</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/124962570</guid><author>smallplum123</author><pubDate>Wed, 25 May 2022 16:10:58 +0800</pubDate><description><![CDATA[题目
给定一个数组，找出数组中第K大。

输入: [3,2,1,5,6,4] 和 k = 2
输出: 5

原题链接：https://leetcode.cn/problems/kth-largest-element-in-an-array/
思路
求 topK 是很经典的题目，经典的思路就是快排和堆排了。
思路1
快排思路。（非完整版快排）
我们从大到小进行排列，在 partition 的过程中，如果分界值刚好在 k 的位置，则提前返回该分界值作为结果即可，如果分界值的坐标落在 k 往后的位置，则说明 to]]></description><category></category></item><item><title><![CDATA[leetcode hot100 之 实现 Trie（前缀树）]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/124955598</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/124955598</guid><author>smallplum123</author><pubDate>Tue, 24 May 2022 22:36:21 +0800</pubDate><description><![CDATA[题目
Trie（发音类似 “try”）或者说 前缀树 是一种树形数据结构，用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景，例如自动补完和拼写检查。
请你实现 Trie 类：

Trie() 初始化前缀树对象。
void insert(String word) 向前缀树中插入字符串 word 。
boolean search(String word) 如果字符串 word 在前缀树中，返回 true（即，在检索之前已经插入）；否则，返回 false 。
boolean startsWi]]></description><category></category></item><item><title><![CDATA[大数据浅谈]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/124936306</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/124936306</guid><author>smallplum123</author><pubDate>Mon, 23 May 2022 23:19:23 +0800</pubDate><description><![CDATA[对于一名算法工程师来说，大数据的应用也是技术栈之一。
本文将以算法工程师，从大数据应用的视角，粗略浅显地做一些总括性的概述，作为自己学习的记录。
大数据技术概览

文件存储：Hadoop HDFS
离线计算：Hive、Hadoop MapReduce、Spark
流式计算：Flink、Storm、Spark Streaming
KV、NoSQL 数据库：HBase、Redis、MongoDB
日志收集：Flume、Kibana
资源管理：Hadoop YARN、kubernetes(k8s)
消息系统：Ka]]></description><category></category></item><item><title><![CDATA[leetcode hot100 之 移动零]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/124927835</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/124927835</guid><author>smallplum123</author><pubDate>Mon, 23 May 2022 15:37:49 +0800</pubDate><description><![CDATA[题目
给定一个数组，请将数组中的零移动数组末尾，并保持其他数字的相对顺序。

输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

原题链接： https://leetcode.cn/problems/move-zeroes/
思路
直接遍历数组，不断地将非0数组移动到最前面，同时统计数组中 零 的个数。遍历完一遍数组后，再直接从数组末尾开始补相应的零即可。

复杂度分析

时间复杂度 O(n)。
空间复杂度 O(1)。



代码
class Solution {
publi]]></description><category></category></item><item><title><![CDATA[leetcode hot100 之 课程表]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/124923846</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/124923846</guid><author>smallplum123</author><pubDate>Mon, 23 May 2022 15:05:42 +0800</pubDate><description><![CDATA[题目
你这学习需要学习 numCourses 门课程，编号记为 0 到 numCourses - 1。
在选修某些课程之前你需要完成一些必修课程。先修课程按 prerequisites 给出关系，如 prerequisites[i] = [a_i, b_i]，表示在选修 a_i 之前需要先完成 b_i。
请判断你最终能否完成所有课程。

示例1:
输入：numCourses = 2, prerequisites = [[1,0]]
输出：true
解释：总共有 2 门课程。学习课程 1 之前，你需要完成课程]]></description><category></category></item><item><title><![CDATA[leetcode hot100 之 回文子串]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/124781134</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/124781134</guid><author>smallplum123</author><pubDate>Sun, 15 May 2022 14:24:09 +0800</pubDate><description><![CDATA[题目
给定一个字符串，请统计回文子串的数量。

输入：s = “aaa”
输出：6
解释：6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”

原题链接： https://leetcode.cn/problems/palindromic-substrings/
思路
思路1
动态规划。题目和《最长回文子串》。
如果 s[i, j] 是一个回文子串，那么 s[i+1, j-1] 也是一个回文子串。反过来，如果s[i+1, j-1] 是一个回文子串，且 s[i] == s[j]，那]]></description><category></category></item><item><title><![CDATA[leetcode hot100 之 回文链表]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/124779924</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/124779924</guid><author>smallplum123</author><pubDate>Sun, 15 May 2022 12:23:13 +0800</pubDate><description><![CDATA[题目
给定一个链表，请判断其是否是回文链表。


输入：head = [1,2,2,1]
输出：true

原题链接：https://leetcode.cn/problems/palindrome-linked-list/
思路
思路1
首先计算链表的长度，这样便于把链表分为两半。
一个不用改变原链表的方式，就是借用栈，将前半部分入栈。再遍历后半部分，同时不断出栈和相应的节点对比即可。这种方法好处是不用改变原链表，但是会有额外空间开销。

复杂度分析

时间复杂度 O(n)。
空间复杂度 O(n)。



]]></description><category></category></item><item><title><![CDATA[leetcode hot100 之 LRU缓存机制]]></title><link>https://blog.youkuaiyun.com/smallplum123/article/details/124747418</link><guid>https://blog.youkuaiyun.com/smallplum123/article/details/124747418</guid><author>smallplum123</author><pubDate>Fri, 13 May 2022 11:55:42 +0800</pubDate><description><![CDATA[题目
请你设计并实现一个满足  LRU (最近最少使用) 缓存 约束的数据结构。
实现 LRUCache 类：
LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存
int get(int key) 如果关键字 key 存在于缓存中，则返回关键字的值，否则返回 -1 。
void put(int key, int value) 如果关键字 key 已经存在，则变更其数据值 value ；如果不存在，则向缓存中插入该组 key-value 。如果插入操作导]]></description><category></category></item></channel></rss>