<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Randar0306的博客]]></title><description><![CDATA[写写Golang的入门程序员]]></description><link>https://blog.youkuaiyun.com/Randar0306</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Randar0306]]></copyright><item><title><![CDATA[C++调用Boost库编写Python扩展模块]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/113698281</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/113698281</guid><author>Randar0306</author><pubDate>Sun, 07 Feb 2021 09:30:18 +0800</pubDate><description><![CDATA[环境
Windows 7 SP1
Visual Studio 2019 - C++桌面开发组件
TDM-GCC-64
Python 3.7.7
boost 1.73
编译步骤


从boost官网中下载源码文件



win+r打开cmd，使用cd跳转到boost_1_73_0目录下，参照Boost文档编译出系统对应python版本的Boost.Python动态库。


[指令选项对应py版本和生成动态库，如需要别的动态库，更多指令选项请查看说明]
bootstrap --with-python=3.7.7]]></description><category></category></item><item><title><![CDATA[968题：监控二叉树（hard）]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/108732959</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/108732959</guid><author>Randar0306</author><pubDate>Tue, 22 Sep 2020 15:24:58 +0800</pubDate><description><![CDATA[给定一个二叉树，我们在树的节点上安装摄像头。
节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。
计算监控树的所有节点所需的最小摄像头数量。
https://leetcode-cn.com/problems/binary-tree-cameras/

节点有三种状态。递归从叶子节点开始处理。
//来自garrybest的答案
class Solution {
    private int ans = 0;
    
    public int minCameraCover(TreeNode r.]]></description><category></category></item><item><title><![CDATA[78题：子集]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/108700461</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/108700461</guid><author>Randar0306</author><pubDate>Sun, 20 Sep 2020 23:16:37 +0800</pubDate><description><![CDATA[https://leetcode-cn.com/problems/subsets/

class Solution {
    public List&lt;List&lt;Integer&gt;&gt; subsets(int[] nums) {
        List&lt;List&lt;Integer&gt;&gt; result = new ArrayList&lt;&gt;();
        List&lt;Integer&gt; grp = new ArrayList&lt;&gt;(.]]></description><category></category></item><item><title><![CDATA[1010题：总持续时间可被 60 整除的歌曲]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/108570256</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/108570256</guid><author>Randar0306</author><pubDate>Sun, 13 Sep 2020 23:42:12 +0800</pubDate><description><![CDATA[在歌曲列表中，第 i 首歌曲的持续时间为 time[i] 秒。
返回其总持续时间（以秒为单位）可被 60 整除的歌曲对的数量。形式上，我们希望索引的数字 i 和 j 满足  i &lt; j 且有
(time[i] + time[j]) % 60 == 0。
来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/pairs-of-songs-with-total-durations-divisible-by-60
著作权归领扣网络所有。商业转载请联系官方授.]]></description><category></category></item><item><title><![CDATA[21题：合并两个有序链表]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/108056513</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/108056513</guid><author>Randar0306</author><pubDate>Mon, 17 Aug 2020 15:18:30 +0800</pubDate><description><![CDATA[https://leetcode-cn.com/problems/merge-two-sorted-lists/
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
输入：1-&gt;2-&gt;4, 1-&gt;3-&gt;4
输出：1-&gt;1-&gt;2-&gt;3-&gt;4-&gt;4

class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
		.]]></description><category></category></item><item><title><![CDATA[74题：搜索二维矩阵]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107893186</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107893186</guid><author>Randar0306</author><pubDate>Sun, 09 Aug 2020 13:44:45 +0800</pubDate><description><![CDATA[编写一个高效的算法来判断 m x n 矩阵中，是否存在一个目标值。该矩阵具有如下特性：
每行中的整数从左到右按升序排列。
每行的第一个整数大于前一行的最后一个整数。


来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/search-a-2d-matrix
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

class Solution {
    public static boolean searchMatrix(int[][].]]></description><category></category></item><item><title><![CDATA[50题：Pow(x, n)]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107850864</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107850864</guid><author>Randar0306</author><pubDate>Thu, 06 Aug 2020 22:09:37 +0800</pubDate><description><![CDATA[实现 pow(x, n) ，即计算 x 的 n 次幂函数。
https://leetcode-cn.com/problems/powx-n/
-100.0 &lt; x &lt; 100.0
n 是 32 位有符号整数，其数值范围是 [−231, 231 − 1] 。

折半计算，和29题类似。
有个测试用例为-2147483648，恰好为−231，直接符号反转会导致溢出，因此先减少数值再做符号反转。
class Solution {
    public double myPow(double x, i.]]></description><category></category></item><item><title><![CDATA[71题：简化路径]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107850449</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107850449</guid><author>Randar0306</author><pubDate>Thu, 06 Aug 2020 21:45:21 +0800</pubDate><description><![CDATA[以 Unix 风格给出一个文件的绝对路径，你需要简化它。或者换句话说，将其转换为规范路径。
在 Unix 风格的文件系统中，一个点（.）表示当前目录本身；此外，两个点 （…）
表示将目录切换到上一级（指向父目录）；两者都可以是复杂相对路径的组成部分。更多信息请参阅：Linux / Unix中的绝对路径 vs
相对路径
请注意，返回的规范路径必须始终以斜杠 / 开头，并且两个目录名之间必须只有一个斜杠 /。最后一个目录名（如果存在）不能以 /
结尾。此外，规范路径必须是表示绝对路径的最短字符串。


来源：.]]></description><category></category></item><item><title><![CDATA[110题：平衡二叉树]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107789830</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107789830</guid><author>Randar0306</author><pubDate>Tue, 04 Aug 2020 16:42:35 +0800</pubDate><description><![CDATA[给定一个二叉树，判断它是否是高度平衡的二叉树。
本题中，一棵高度平衡二叉树定义为：
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。
https://leetcode-cn.com/problems/balanced-binary-tree/

深度值是一个很好地反映子树是否失衡的量。设当深度值为-1时，二叉树失衡。
getDepth递归函数 ：从叶子节点开始计算深度。计算非叶子节点的左右子树深度，如果相差值大于1，则返回-1表示失衡。
该函数的具体逻辑为：

首先节点如果为空，直接返回深度。.]]></description><category></category></item><item><title><![CDATA[Java常用修饰词——修饰对象及意义总结]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107775493</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107775493</guid><author>Randar0306</author><pubDate>Tue, 04 Aug 2020 12:26:30 +0800</pubDate><description><![CDATA[public
static
注：不影响修饰对象的访问权限。

类：内部类。
方法：静态方法不依赖于任何对象就能进行访问，所以方法内只能使用静态变量及静态方法。
字段（成员）：静态成员被所有对象共享，在内存中只有一个副本，它当且仅当在类初次加载时会被初始化。静态成员的初始化顺序按照定义的顺序进行初始化。
代码块：静态代码块可以出现在类的任何一个地方，在类初次加载的时候按顺序执行，且只执行一次。


...]]></description><category></category></item><item><title><![CDATA[29题：两数相除]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107738727</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107738727</guid><author>Randar0306</author><pubDate>Sat, 01 Aug 2020 23:43:23 +0800</pubDate><description><![CDATA[给定两个整数，被除数 dividend 和除数 divisor。将两数相除，要求不使用乘法、除法和 mod 运算符。
返回被除数 dividend 除以除数 divisor 得到的商。
被除数和除数均为 32 位有符号整数。
除数不为 0。
假设我们的环境只能存储 32 位有符号整数，其数值范围是 [−2^31,  2^31 − 1]。本题中，如果除法结果溢出，则返回 2^31 − 1。
来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/divide-.]]></description><category></category></item><item><title><![CDATA[面试题08.03题：魔术索引]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107719671</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107719671</guid><author>Randar0306</author><pubDate>Fri, 31 Jul 2020 19:01:44 +0800</pubDate><description><![CDATA[魔术索引。 在数组A[0…n-1]中，有所谓的魔术索引，满足条件A[i] = i。给定一个有序整数数组，编写一种方法找出魔术索引，若有的话，在数组A中找出一个魔术索引，如果没有，则返回-1。若有多个魔术索引，返回索引值最小的一个。
来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/magic-index-lcci
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

因为题目提供有序序列，且允许重复元素，所以应该使用跳跃法跳过索引追赶.]]></description><category></category></item><item><title><![CDATA[28题：实现 strStr() （从结果看KMP）]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107687706</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107687706</guid><author>Randar0306</author><pubDate>Thu, 30 Jul 2020 13:39:40 +0800</pubDate><description><![CDATA[https://leetcode-cn.com/problems/implement-strstr/

func strStr(haystack string, needle string) int {
    n:=len(haystack)
    m:=len(needle)
    if m == 0{
        return 0
    }
    if n &lt; m{
    	return -1
    }
    next, q := getNext(needle), 0
   .]]></description><category></category></item><item><title><![CDATA[991题：坏了的计算器]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107650616</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107650616</guid><author>Randar0306</author><pubDate>Wed, 29 Jul 2020 01:14:30 +0800</pubDate><description><![CDATA[在显示着数字的坏计算器上，我们可以执行以下两种操作：
双倍（Double）：将显示屏上的数字乘 2；
递减（Decrement）：将显示屏上的数字减 1 。
最初，计算器显示数字 X。
返回显示数字 Y 所需的最小操作数。
来源：力扣（LeetCode） 链接：https://leetcode-cn.com/problems/broken-calculator
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

func brokenCalc(X int, Y int) int {
 .]]></description><category></category></item><item><title><![CDATA[497题：非重叠矩形中的随机点]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107644751</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107644751</guid><author>Randar0306</author><pubDate>Tue, 28 Jul 2020 20:50:53 +0800</pubDate><description><![CDATA[给定一个非重叠轴对齐矩形的列表 rects，写一个函数 pick 随机均匀地选取矩形覆盖的空间中的整数点。
https://leetcode-cn.com/problems/random-point-in-non-overlapping-rectangles/

import "math/rand"
import "time"

type Solution struct {
    P_map []int
    Elem [][]int
    Maxarea int
}


func Construc.]]></description><category></category></item><item><title><![CDATA[104题：二叉树的最大深度]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107636528</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107636528</guid><author>Randar0306</author><pubDate>Tue, 28 Jul 2020 15:18:25 +0800</pubDate><description><![CDATA[二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
给定一个二叉树，找出其最大深度。
https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/

func maxDepth(root *TreeNode) int {
    var cal func(p *TreeNode) int
    cal = func(p *TreeNode) int{
        if p == nil{
            return 0
.]]></description><category></category></item><item><title><![CDATA[64题：最小路径和（基础动态规划）]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107595377</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107595377</guid><author>Randar0306</author><pubDate>Mon, 27 Jul 2020 03:13:11 +0800</pubDate><description><![CDATA[给定一个包含非负整数的 m x n 网格，请找出一条从左上角到右下角的路径，使得路径上的数字总和为最小。
说明：每次只能向下或者向右移动一步。
地址：https://leetcode-cn.com/problems/minimum-path-sum/

最开始使用递归寻找子问题的解，提交超时。然后老老实实写了迭代，用数组存放子问题的结果以免重复计算。
func minPathSum(grid [][]int) int {
	min := func(a, b int) int {
		if a &lt; b.]]></description><category></category></item><item><title><![CDATA[94题：二叉树的中序遍历]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107539421</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107539421</guid><author>Randar0306</author><pubDate>Thu, 23 Jul 2020 15:58:46 +0800</pubDate><description><![CDATA[递归
func inorderTraversal(root *TreeNode) []int {
	return inorderRecursive(root)
}

func inorderRecursive(root *TreeNode) []int {
	if root == nil {
		return []int{}
	}
	rest := append(inorderRecursive(root.Left), root.Val)
	rest = append(rest, inorderRecurs]]></description><category></category></item><item><title><![CDATA[34题：在排序数组中查找元素的第一个和最后一个位置（go）]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107511921</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107511921</guid><author>Randar0306</author><pubDate>Wed, 22 Jul 2020 13:56:13 +0800</pubDate><description><![CDATA[题目链接：https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/
题解链接：https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/solution/qiao-yong-gohan-shu-zi-mian-liang-er-fen-cha-zhao-/
来源：力扣.]]></description><category></category></item><item><title><![CDATA[20题：有效的括号(golang)]]></title><link>https://blog.youkuaiyun.com/Randar0306/article/details/107509286</link><guid>https://blog.youkuaiyun.com/Randar0306/article/details/107509286</guid><author>Randar0306</author><pubDate>Wed, 22 Jul 2020 11:34:47 +0800</pubDate><description><![CDATA[来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

给定一个只包括 ‘(’，’)’，’{’，’}’，’[’，’]’ 的字符串，判断字符串是否有效。
有效字符串需满足：

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。

func isValid(s string) bool {
	var stk.]]></description><category></category></item></channel></rss>