0%

动态规划

对于动态规划问题,拆解为如下五步曲

  1. 确定dp数组(dp table)以及下标的含义
  2. 确定递推公式
  3. dp数组如何初始化
  4. 确定遍历顺序
  5. 举例推导dp数组

01背包问题

有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。

Read more »

特殊技巧

位运算

Java中支持的位运算
位与(&):二元运算符,两个为1时结果为1,否则为0
位或(|):二元运算符,两个其中有一个为1时结果就为1,否则为0
位异或(^):二元运算符,两个数相同时结果为0,否则为1。任何数和0做异或结果仍然是原来的数,任何数和自身做异或结果还是0,异或运算满足交换律和结合律。异或-1 (二进制全为1) 相当于取反
位取非(~):一元运算符,取反操作,即1变为0,0变为1
左移(<<):一元运算符,按位左移一定的位置。高位溢出,低位补0,符号位不变。
右移(>>):一元运算符,按位右移一定的位置。高位补符号位,符号位不变,低位溢出。
无符号右移(>>>):一元运算符,高位补零,低位溢出。

位移操作

Java中的位移操作只针对int类型的有效,Java中,一个int的长度始终是32位,也就是4个字节,它操作的都是该整数的二进制数。也可作用于以下类型,即 byte,short,char,long(它们都是整数形式)。当为这四种类型时,JVM先把它们转换成int类型再进行操作。

Read more »

二分

35.搜索插入位置

35. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。

解法

Read more »


283.移动零

283.移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

Read more »

看了自己的博客感觉很单调,再加上已经很久没有完善和发博客了,就准备完善一下加个背景什么的,毕竟域名又续费了一年,不用就太亏了。太久没用了,发博客都不会了,搜了一下教程,慢慢熟悉起来了。早上阿里云小姐姐还给我打电话问我有没有相关业务对接(因为前几天续费域名,而且还在捯饬cdn和ssl证书),需不需要他们家产品,我也想呀,可是我还没找工作呢,而且我还想去你公司工作呢。

先从网上搜了个背景图,先凑合用,找到好看的了再换掉就是。

background

网上的一些教程都是打开 themes/next/source/css/ _custom/custom.styl 文件,但是我在主题文件中找不到这文件,于是又多次搜索,终于找到一个解决方案。

  • 找到到博客的根目录,找到 _config.yml 并打开,按住 ctrl + f 搜索 custom_file_path:
    style:source/_data/styles.styl 注释取消(代码如下)
Read more »

这里有东西被加密了,需要输入密码查看哦。
Read more »

1. 构造函数

string 类有多个构造函数,用法示例如下:

1
2
3
4
string s1();  // si = ""
string s2("Hello"); // s2 = "Hello"
string s3(4, 'K'); // s3 = "KKKK"
string s4("12345", 1, 3); //s4 = "234",即 "12345" 的从下标 1 开始,长度为 3 的子串

string 类没有接收一个整型参数或一个字符型参数的构造函数。下面的两种写法是错误的:

1
2
string s1('K');
string s2(123);
Read more »