<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wweTHEUT的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wweTHEUT</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wweTHEUT]]></copyright><item><title><![CDATA[python日期增减]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/128634549</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/128634549</guid><author>wweTHEUT</author><pubDate>Tue, 10 Jan 2023 18:32:21 +0800</pubDate><description><![CDATA[【代码】python日期增减。]]></description><category></category></item><item><title><![CDATA[二维网格迁移]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/125902272</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/125902272</guid><author>wweTHEUT</author><pubDate>Wed, 20 Jul 2022 22:40:41 +0800</pubDate><description><![CDATA[代码】二维网格迁移。]]></description><category></category></item><item><title><![CDATA[下一个更大元素 III]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/125818275</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/125818275</guid><author>wweTHEUT</author><pubDate>Sat, 16 Jul 2022 12:13:06 +0800</pubDate><description><![CDATA[代码】下一个更大元素III。]]></description><category></category></item><item><title><![CDATA[粉刷房子(leetcode)]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/125466508</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/125466508</guid><author>wweTHEUT</author><pubDate>Sun, 26 Jun 2022 08:26:28 +0800</pubDate><description><![CDATA[深度优先搜索和动态规划]]></description><category></category></item><item><title><![CDATA[串联所有单词的子串]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/125438240</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/125438240</guid><author>wweTHEUT</author><pubDate>Fri, 24 Jun 2022 07:12:47 +0800</pubDate><description><![CDATA[采用散列表和动态规划，中间查找相同的字符串可以适当优化（我这里没优化但能够通过）。]]></description><category></category></item><item><title><![CDATA[关于破碎矩形区域按照均匀分布随即选点的问题]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/125200521</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/125200521</guid><author>wweTHEUT</author><pubDate>Thu, 09 Jun 2022 12:32:39 +0800</pubDate><description><![CDATA[随机选点在游戏和统计中用的非常多，怎么利用伪随机算法在计算机中模拟现实中符合特定分布特征的点，则一般需要用到概率论中的知识进行建模，从古典概型到现代多样概率分布函数以及特征数，都可以成为建立符合要求的伪随机算法的工具。一生二二生三三生万物道法自然，构建符合特定分布的伪随机算法不是推倒重来，而是可以在均匀分布的伪随机算法基石之上堆彻出​鳞次栉比​的伪随机算法大厦。伪随机算法发展至今，已经发明出数种相对可靠的算法，比如在计算机程序语言中通常自带的LCG算法以及基于LCG扩展的MWC算法再到位运算LFSR算法然后]]></description><category></category></item><item><title><![CDATA[我的日程安排表 III]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/125152369</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/125152369</guid><author>wweTHEUT</author><pubDate>Mon, 06 Jun 2022 19:05:11 +0800</pubDate><description><![CDATA[有序结合的思想，实际可以运用线段树解决能减少不少代码]]></description><category></category></item><item><title><![CDATA[状态压缩+减枝]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/125092093</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/125092093</guid><author>wweTHEUT</author><pubDate>Wed, 01 Jun 2022 22:58:35 +0800</pubDate><description><![CDATA[这里自己能够想到的是状态压缩+剪纸以及回溯，至于动态规划个人直觉上有但是没有想出来。]]></description><category></category></item><item><title><![CDATA[leetcode笔记（剑指 Offer II 114. 外星文字典）]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/125074649</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/125074649</guid><author>wweTHEUT</author><pubDate>Tue, 31 May 2022 22:29:38 +0800</pubDate><description><![CDATA[题目来自leetcode可以采用回溯代换数字，然后进行数字排序，也可以直接采用拓扑排序，回溯代换数字的代码结构要比拓扑排序的复杂且复杂度要高，不过针对数据量少的数据集还是可以用的。]]></description><category></category></item><item><title><![CDATA[验证IP地址]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/125028319</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/125028319</guid><author>wweTHEUT</author><pubDate>Sun, 29 May 2022 10:58:33 +0800</pubDate><description><![CDATA[有效的IPv4地址 是 “x1.x2.x3.x4” 形式的IP地址。 其中 0 &lt;= xi &lt;= 255 且 xi 不能包含 前导零。例如: “192.168.1.1” 、 “192.168.1.0” 为有效IPv4地址， “192.168.01.1” 为无效IPv4地址; “192.168.1.00” 、 “192.168@1.1” 为无效IPv4地址。

一个有效的IPv6地址 是一个格式为“x1:x2:x3:x4:x5:x6:x7:x8” 的IP地址，其中:

1 &lt;= xi.len]]></description><category></category></item><item><title><![CDATA[环绕字符串中唯一的子字符串]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/124975503</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/124975503</guid><author>wweTHEUT</author><pubDate>Wed, 25 May 2022 22:45:24 +0800</pubDate><description><![CDATA[一、问题

把字符串 s 看作是 “abcdefghijklmnopqrstuvwxyz” 的无限环绕字符串，所以 s 看起来是这样的：

"...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....".
现在给定另一个字符串 p 。返回s 中唯一 的 p 的 非空子串的数量。


输入: p = "cac"
输出: 2
解释: 字符串 s 中的字符串“cac”只有两个子串“a”、“c”。.

来源：力扣（LeetCode）...]]></description><category></category></item><item><title><![CDATA[leetcode(为高尔夫比赛砍树)]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/124938014</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/124938014</guid><author>wweTHEUT</author><pubDate>Tue, 24 May 2022 00:29:11 +0800</pubDate><description><![CDATA[求两点之间最短路径，个人平常用的最多的是floyd算法，算法相当简洁，写起来也方便，但是这里的格点比较多，不适合floyd，而对于dijkstra算法，当树接节点占满图后，直接退化成floyd算法，时间复杂度也变得不是很理想，这里用A* （求路径有各种各样的算法，有A*的变种，也有些对于实时度较高的甚至采用蚁群算法，这是个很复杂的领域，无人驾驶，导航，路由，加速器，都用到路径规划，但针对某一特定问题选择的算法都会不同。）：


var cutOffTree = function(forest) {
...]]></description><category></category></item><item><title><![CDATA[数组中重复的数据]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/124653645</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/124653645</guid><author>wweTHEUT</author><pubDate>Sun, 08 May 2022 20:11:46 +0800</pubDate><description><![CDATA[问题



给你一个长度为 n 的整数数组 nums ，其中 nums 的所有整数都在范围 [1, n] 内，且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数，并以数组形式返回。

你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间的算法解决此问题。

来源：力扣（LeetCode）
链接：https://leetcode.cn/problems/find-all-duplicates-in-an-array





代码


var findDuplicates = fun]]></description><category></category></item><item><title><![CDATA[【leetcode】最小基因变化]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/124629585</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/124629585</guid><author>wweTHEUT</author><pubDate>Sat, 07 May 2022 14:05:02 +0800</pubDate><description><![CDATA[题目

基因序列可以表示为一条由 8 个字符组成的字符串，其中每个字符都是 'A'、'C'、'G' 和 'T' 之一。

假设我们需要调查从基因序列 start 变为 end 所发生的基因变化。一次基因变化就意味着这个基因序列中的一个字符发生了变化。

例如，"AACCGGTT" --&gt; "AACCGGTA" 就是一次基因变化。
另有一个基因库 bank 记录了所有有效的基因变化，只有基因库中的基因才是有效的基因序列。

给你两个基因序列 start 和 end ，以及一个基因库 bank ，请你找出]]></description><category></category></item><item><title><![CDATA[乘积小于 K 的子数组]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/124601609</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/124601609</guid><author>wweTHEUT</author><pubDate>Fri, 06 May 2022 06:41:27 +0800</pubDate><description><![CDATA[给你一个整数数组nums和一个整数k，请你返回子数组内所有元素的乘积严格小于k的连续子数组的数目。




var numSubarrayProductLessThanK = function(nums, k) {
    var ans = 0;
    let start = 0;
    let end = 0;
    let count = 0;
    let cur_m = 1;

    while(end &lt; nums.length) {
        if(nums[...]]></description><category></category></item><item><title><![CDATA[leetcode(点燃木棒)]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/124389290</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/124389290</guid><author>wweTHEUT</author><pubDate>Sun, 24 Apr 2022 18:49:50 +0800</pubDate><description><![CDATA[一、问题



二、分析 

这个跟在图上找寻每个节点到各个节点之间的最短路径相同，可以利用弗洛伊德算法，不过时间复杂度过高，为此由于问题的特殊性可以采用BFS获得DFS + 记忆搜索，这里只写出用弗洛伊德算法写出的代码。另外就是棍子编号和端点编号的转换问题，这个可以自己去推导，我直接写上了。

三、代码


	/**
	 * @param {number} height
	 * @param {number} width
	 * @param {number[]} indices
	 * @return ]]></description><category></category></item><item><title><![CDATA[leetcode（相邻字符不同的最长路径）]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/124333610</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/124333610</guid><author>wweTHEUT</author><pubDate>Thu, 21 Apr 2022 22:36:09 +0800</pubDate><description><![CDATA[一种方法是中序遍历加上前序遍历构成两组字符串，然后找到的字符串中最长连续的不含相同字符的子字符串便是该树上最长的不同字符路径。]]></description><category></category></item><item><title><![CDATA[从给定原材料中找到所有可以做的菜【算法题】]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/122203456</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/122203456</guid><author>wweTHEUT</author><pubDate>Tue, 28 Dec 2021 21:53:25 +0800</pubDate><description><![CDATA[二、一些思考

最让人想到的就是拓扑排序，不过这种问题在高级语言中通常都可以直接用暴力的方法得到。另外，单纯就这道题的解决方法可以解决很多现实中的问题。比如餐厅原料订购与本餐厅菜谱之间的匹配问题，工厂生产中产品与原料的匹对问题，这些都是在日常后勤中所应用的，不过通常都会带上权重。尤其在原材料和产品都比较多的情况下，利用计算机解决可以提高工作效率。

这些在仓库管理系统中也是常应用到的。仓库的职责通常来说就是采购、出料与产品入库，而当工厂生产产品多时，如何就当前生产计划以及现有原料库存量推算出预采购原料量..]]></description><category></category></item><item><title><![CDATA[算法不是套模板，而是具体问题具体对策]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/122014295</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/122014295</guid><author>wweTHEUT</author><pubDate>Sat, 18 Dec 2021 17:14:42 +0800</pubDate><description><![CDATA[一、题目





二、代码：


/**
 * @param {string} street
 * @return {number}
 */
var minimumBuckets = function(street) {
    let result = 0;
    let index = -1;
    let prev_index = index;
    street[-1] = 'o';
    let shared = -1;
    while(true) {
        prev_i.]]></description><category></category></item><item><title><![CDATA[记一次leetcode绕弯弯]]></title><link>https://blog.youkuaiyun.com/wweTHEUT/article/details/121965215</link><guid>https://blog.youkuaiyun.com/wweTHEUT/article/details/121965215</guid><author>wweTHEUT</author><pubDate>Thu, 16 Dec 2021 01:12:59 +0800</pubDate><description><![CDATA[一、问题分析

这道题目虽然是简单题，不过这有点像是脑筋急转弯，一不小心就会掉进坑里。如果按照常规思维，这道问题就只能枚举了，可是最终枚举的效果却是时间超时。

但只要稍加思考此问题便能发现，既然是k个子序列，那么这k个子序列必然是这序列里的任意组合，那么可想而知一定存在着k个组合，而这k个组合分别是这个数组中前k大的数。那么问题就直接转换成求数组中前k个大的数了。



第一种超时办法：


/**
 * @param {number[]} nums
 * @param {number} k
 * ...]]></description><category></category></item></channel></rss>