<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mountains_L的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mountains_L</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mountains_L]]></copyright><item><title><![CDATA[快速排序算法C++]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/125919415</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/125919415</guid><author>mountains_L</author><pubDate>Thu, 21 Jul 2022 19:29:58 +0800</pubDate><description><![CDATA[快速排序算法C++]]></description><category></category></item><item><title><![CDATA[【PyTorch】pytorch/libtorch常用API记录]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/123185626</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/123185626</guid><author>mountains_L</author><pubDate>Mon, 28 Feb 2022 17:17:55 +0800</pubDate><description><![CDATA[pytorch常用AIP笔记,rand(),dot(),mul(),slice(),view(),unsqueeze(),squeeze(),purmmute(),ExpandingArray ......持续更新]]></description><category></category></item><item><title><![CDATA[【C++位运算】318. 最大单词长度乘积/C++/leedcode/源码]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/121373169</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/121373169</guid><author>mountains_L</author><pubDate>Wed, 17 Nov 2021 12:04:15 +0800</pubDate><description><![CDATA[C++位运算
1. &gt;&gt;= 右移并赋值
示例：
int n = 0;
n = 8;  // 00000000 00000000 00000000 00000100 十进制8的二进制表示
n &gt;&gt;= 3;// 00000000 00000000 00000000 00000001 将n右移三位并赋值给n
//等价于 n = n &gt;&gt; 3;

2. &lt;&lt;= 左移并赋值
示例：
int n = 0;
n = 1;  // 00000000 00000000 0000]]></description><category></category></item><item><title><![CDATA[【快速排序算法】C++]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/120504857</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/120504857</guid><author>mountains_L</author><pubDate>Mon, 27 Sep 2021 11:34:03 +0800</pubDate><description><![CDATA[快速排序算法
快速排序算法每次处理确定一个元素的最终位置。
每次处理确定一个基准元素（一般为第一个元素），将所有比基准元素小的放基准元素前面（无序），将所有比基准元素大的放基准元素后面（无序）。处理v.size()次后数组排序完成。
每次处理步骤如下：
①确定一个基准元素，本步骤以第一个元素为例。
②设置左右指针，分别指向列头和列位。
③右指针从后往前遍历找到一个小于基准元素的值，放入左指针处（基准元素处，正好空缺）。
④左指针从前往后遍历找到一个大于基准元素的值，放入右指针处（右指针已放入基准元素处，正好]]></description><category></category></item><item><title><![CDATA[扁平化多级双向链表/Leedcode/源码/C++]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/120479475</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/120479475</guid><author>mountains_L</author><pubDate>Sat, 25 Sep 2021 23:38:47 +0800</pubDate><description><![CDATA[430. 扁平化多级双向链表
多级双向链表中，除了指向下一个节点和前一个节点指针之外，它还有一个子链表指针，可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项，依此类推，生成多级数据结构，如下面的示例所示。
给你位于列表第一级的头节点，请你扁平化列表，使所有结点出现在单级双链表中。
示例 1：
输入：head = [1,2,3,4,5,6,null,null,null,7,8,9,10,null,null,11,12]
输出：[1,2,3,7,8,11,12,9,10,4,5,6]
解释：
/]]></description><category></category></item><item><title><![CDATA[【线索二叉树遍历】线索二叉树及其中序遍历/C++/源码]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/119971041</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/119971041</guid><author>mountains_L</author><pubDate>Sat, 28 Aug 2021 18:33:27 +0800</pubDate><description><![CDATA[线索二叉树定义
遍历二叉树是以一定的规则将二叉树中的结点排列成一个线性序列,从而得到几和遍历序的每个结点（第一个和使得该序列中最后一个结点除外）都有有一个直接前驱和直接后继。表存储仅能体现一种父子关系,不能直接得到传统的二叉链结点在遍历中的前驱或后继。前面提到,在含n个结点的二叉树中,有n+1个空指针。这是因为每个叶结点有2个空指针，每个度为1的结点有1个空指针，空指针总数为2n0+ n1,又n0 = n2+1,所以空指针总数为n0 = n2+1，所以空指针总数位n0+n1+n2+1 = n+1。由此此设想]]></description><category></category></item><item><title><![CDATA[前缀异或]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/116998761</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/116998761</guid><author>mountains_L</author><pubDate>Tue, 18 May 2021 19:10:52 +0800</pubDate><description><![CDATA[Q(left,right)=arr[left]⊕…⊕arr[right]
=(arr[0]⊕…⊕arr[left−1])⊕(arr[0]⊕…⊕arr[left−1])⊕(arr[left]⊕…⊕arr[right])
=(arr[0]⊕…⊕arr[left−1])⊕(arr[0]⊕…⊕arr[right])
=xors[left]⊕xors[right+1]​

]]></description><category></category></item><item><title><![CDATA[【动态规划】打家劫舍问题/leedcode/C++/源码]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/115903191</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/115903191</guid><author>mountains_L</author><pubDate>Tue, 20 Apr 2021 13:18:20 +0800</pubDate><description><![CDATA[问题描述
你是一个专业的小偷，计划偷窃沿街的房屋。每间房内都藏有一定的现金，影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统，如果两间相邻的房屋在同一晚上被小偷闯入，系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组，计算你 不触动警报装置的情况下 ，一夜之内能够偷窃到的最高金额。
示例 1：
输入：[1,2,3,1]
输出：4
解释：偷窃 1 号房屋 (金额 = 1) ，然后偷窃 3 号房屋 (金额 = 3)。
偷窃到的最高金额 = 1 + 3 = 4 。
示例 2：
输入：[2,7]]></description><category></category></item><item><title><![CDATA[【KMP算法】]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/115902970</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/115902970</guid><author>mountains_L</author><pubDate>Tue, 20 Apr 2021 13:04:32 +0800</pubDate><description><![CDATA[https://www.zhihu.com/question/21923021

]]></description><category></category></item><item><title><![CDATA[【位运算】子集 II /Leedcode/C++/源码]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/115371282</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/115371282</guid><author>mountains_L</author><pubDate>Thu, 01 Apr 2021 12:37:01 +0800</pubDate><description><![CDATA[给你一个整数数组 nums，其中可能包含重复元素，请你返回该数组所有可能的子集（幂集）。
解集不能包含重复的子集。返回的解集中，子集可以按任意顺序排列。
示例 1：
输入：nums = [1,2,2]
输出：[[],[1],[1,2],[1,2,2],[2],[2,2]]
示例 2：
输入：nums = [0]
输出：[[],[0]]
本题关键在于去除重复元素，该解法巧妙使用了位运算，使用&amp;运算选定数组的特殊位，值得学习。
vector&lt;vector&lt;int&gt;&gt; subset]]></description><category></category></item><item><title><![CDATA[【软件测试与质量保证】测试方法(等价类划分、边界值、错误推测)汇总]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/115328586</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/115328586</guid><author>mountains_L</author><pubDate>Tue, 30 Mar 2021 16:10:24 +0800</pubDate><description><![CDATA[测试方法(等价类划分、边界值、错误推测)汇总
老师上课全英文课件还没有配套教材，顶不住呀
https://wenku.baidu.com/view/f142b348a22d7375a417866fb84ae45c3b35c2b0.html


]]></description><category></category></item><item><title><![CDATA[【二分搜索算法】搜索二维矩阵/C++/Leedcode/源码]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/115322272</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/115322272</guid><author>mountains_L</author><pubDate>Tue, 30 Mar 2021 15:31:24 +0800</pubDate><description><![CDATA[二分搜索算法
举个简单的例子：
给出一个1-100的数，要求在一个1-100的升序数列中找出它。
第一想法：蛮力法。如果使用蛮力法则遍历1-100，遍历100个数，很麻烦。
那么，如果首先问这个数和中间数50的关系，如果大于50则在51-100中搜索，如果小于50，则在1-50中搜索。这样可以直接删除无用的一半，节省一半的任务量。
依此类推，不断询问目标数与中间数的关系，删除无用的一半，直到找到目标数为止，这样不断二分，删除无用一半的方法就叫二分搜索算法。
Leedcode例题

搜索二维矩阵
编写一个高效]]></description><category></category></item><item><title><![CDATA[【位运算】颠倒二进制位/C++/Leedcode/源码]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/115305749</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/115305749</guid><author>mountains_L</author><pubDate>Mon, 29 Mar 2021 18:24:49 +0800</pubDate><description><![CDATA[190. 颠倒二进制位
颠倒给定的 32 位无符号整数的二进制位。
方法一
将二进制数按位逆序输入到另一个二进制数中。
class Solution {
public:
    uint32_t reverseBits(uint32_t n) {
        uint32_t num = n; //源二进制数
        uint32_t res = 0; //目标二进制数
        for(int i = 0; i &lt; 32; i++){  //逆序输入
            res]]></description><category></category></item><item><title><![CDATA[【二叉树遍历】二叉树的中序遍历/C++/leedcode/源码]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/115304102</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/115304102</guid><author>mountains_L</author><pubDate>Mon, 29 Mar 2021 16:46:32 +0800</pubDate><description><![CDATA[中序遍历二叉树：按照左孩子 -&gt; 根节点 -&gt; 右孩子的顺序遍历二叉树。
1.递归方法
    void bst(TreeNode* root){
        if(root == nullptr) return; //如果为空则返回
        bst(root-&gt;right);   //遍历左孩子
        cout &lt;&lt; root-&gt;val;  //输出根节点
        bst(root-&gt;left);    //遍历右孩子
    }

]]></description><category></category></item><item><title><![CDATA[【经典算法问题】逆波兰表达式求值/leedcode/源码]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/115019591</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/115019591</guid><author>mountains_L</author><pubDate>Sat, 20 Mar 2021 02:08:49 +0800</pubDate><description><![CDATA[1.蛮力法
int evalRPN(vector&lt;string&gt;&amp; tokens) {
        vector&lt;string&gt; s = tokens;
	   int i = 0; //
	   while (s.size() != 1) {
	        while ((s[i] != "+") &amp;&amp; (s[i] != "-") &amp;&amp; (s[i] != "*") &amp;&amp; (s[i] != "/")) i++;
	   ]]></description><category></category></item><item><title><![CDATA[【经典算法问题】无重复字符的最长子串问题/leedcode/源码]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/114934605</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/114934605</guid><author>mountains_L</author><pubDate>Wed, 17 Mar 2021 16:19:00 +0800</pubDate><description><![CDATA[无重复字符的最长子串问题
题目内容
给定一个字符串，请你找出其中不含有重复字符的最长子串的长度。
输入:
s = “abcabcbb”
输出:
3
解释:
因为无重复字符的最长子串是 “abc”，所以其长度为 3。
解法1：蛮力法
从第一个字符开始找无重复字符的子串，选择其中最长的。
class Solution {
public:
	int lengthOfLongestSubstring(string s) {
		int max = 0;
		int n = 0;
		for(int i = 0; i]]></description><category></category></item><item><title><![CDATA[【编辑距离】编辑距离算法]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/114897922</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/114897922</guid><author>mountains_L</author><pubDate>Wed, 17 Mar 2021 15:27:28 +0800</pubDate><description><![CDATA[编辑距离算法
算法定义
编辑距离指的是在两个单词之间，由其中一个单词转换为另一个单词所需要的最少单字符编辑操作次数。
在这里定义的单字符编辑操作有且仅有三种：
·插入（Insertion）
·删除（Deletion）
·替换（Substitution）
举例： “retten”和“setting”
1.‘r’替换为‘s’  retten-&gt;setten
2.‘e’替换为‘i’  setten-&gt;settin
3. 插入‘g’       settin-&gt;setting
" retten "]]></description><category></category></item><item><title><![CDATA[【Verilog学习】Verilog中localparam和parameters关键字的区别]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/110291148</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/110291148</guid><author>mountains_L</author><pubDate>Sat, 28 Nov 2020 20:36:29 +0800</pubDate><description><![CDATA[localparam和parameters关键字语法格式
parameter [参数名] 数值
localparam [常数名] 数值

例子：
//将A赋值为100
parameter A = 100;
localparam A = 100;

localparam和parameters关键字的区别
在以前时parameter关键字即作为常数又做为参数，这样容易导致安全性问题，因此在IEEE 2005标准后Verilog增加了localparam关键字表示常数，parameter关键字仅表示参数。那么常数]]></description><category></category></item><item><title><![CDATA[【基因序列比对】Needleman-Wunsch算法]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/108593164</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/108593164</guid><author>mountains_L</author><pubDate>Tue, 15 Sep 2020 10:36:15 +0800</pubDate><description><![CDATA[前言
最近加入了一个研究基因大数据的项目组，要学习基因相关知识QAQ，所以开始一个新系列梳理知识和激励自己学习。
本系列参考了https://zhuanlan.zhihu.com/p/54142276
Needleman-Wunsch算法
Needleman-Wunsch算法是基于动态规划的算法，记不清楚的可以看下我之前的动态规划的文章，简单总结就是将一个问题分解为很多相互联系并且逐渐扩大的小问题，依次解决使问题规模逐渐扩大，最终获得问题的解。
DNA有三种情况可能导致两个序列不同：

SNP单核酸多态性，]]></description><category></category></item><item><title><![CDATA[【回溯法】求解最小机器重量问题/C++/算法]]></title><link>https://blog.youkuaiyun.com/mountains_L/article/details/106522082</link><guid>https://blog.youkuaiyun.com/mountains_L/article/details/106522082</guid><author>mountains_L</author><pubDate>Wed, 03 Jun 2020 14:15:30 +0800</pubDate><description><![CDATA[求解最小机器重量问题
题目内容：
设某一机器由n个部件组成, 部件编号为1 ~ n，每一种部件都可以从m个不同的供应商处购得，供应商编号为1 ~ m。
设wij是从供应商j处购得的部件i的重量, cij是相应的价格。对于给定的机器部件重量和机器部件价格，计算总价格不超过d的最小重量机器设计。
（注意：输出结果中第一行最后没有空格。比如下面的输出样例中1 3 1后面没有空格。）
输入格式 :
第1行输入3个正整数n, m和d。接下来n行输入wij（每行m个整数），最后n行输入cij（每行m个整数）, 这里1≤]]></description><category></category></item></channel></rss>