461.汉明距离 发表于 2020-09-13 | 分类于 算法 字数统计: 135 | 阅读时长 ≈ 1 题目描述 题解通过分析题意可知, 求两个数的汉明距离, 就是求两个数的二进制形式下, 有多少位的数字不相同. 很自然地想到异或运算, 经过异或后, 哪个位置不同则异或结果在该位置就是1. 求出异或结果有多少个1即可, 这里要用到右移. 123456789101112public int hammi ... 阅读全文 »
41.缺失的第一个正数 发表于 2020-09-10 | 分类于 算法题目 字数统计: 103 | 阅读时长 ≈ 1 题目描述 题解抽屉原理 123456789101112131415161718192021public int firstMissingPositive(int[] nums) { for (int i = 0; i < nums.length; i++) { ... 阅读全文 »
448.找到所有数组中消失的数字 发表于 2020-09-09 | 分类于 算法题目 字数统计: 183 | 阅读时长 ≈ 1 题目描述 题解抽屉原理这道题跟41题几乎是一模一样的思路, 就是通过原地哈希, 将所有的元素都摆放到其对应的位置, 即1放在索引为0处, 2放在索引为1处… 遍历交换位置后的数组, 将所有对不上的元素添加到列表中即可 12345678910111213141516171819202122public ... 阅读全文 »
438.找到字符串中所有字母异位词 发表于 2020-09-09 | 分类于 算法题目 字数统计: 238 | 阅读时长 ≈ 1 题目描述 题解滑动窗口可以使用全排列的方法把所有的排列组合放到哈希表中, 然后逐个遍历字符串, 截取适当的长度去匹配, 但是时间复杂度不好, 因此采用滑动窗口的方式. 123456789101112131415161718192021222324252627282930313233343536373 ... 阅读全文 »
406.根据身高重建队列 发表于 2020-09-08 | 分类于 算法题目 字数统计: 129 | 阅读时长 ≈ 1 题目描述 题解贪心算法思路为先将所有整数对按照h从大到小排序, 如果h相同就根据k从小到大排序 然后遍历排过序的数组, 将k值作为索引插入到队列中 12345678910111213141516class Solution { public int[][] reconstructQu ... 阅读全文 »
Linux学习_阿里云ECS环境 发表于 2020-09-05 | 分类于 Linux 字数统计: 12.1k | 阅读时长 ≈ 47 环境搭建 在阿里云购买学生机, 基本配置如下: 设置安全组信息 进入管理平台的防火墙设置, 配置常用的端口 下载Xshell工具, 进行远程连接使用 下载Xftp工具, 文件上传使用 要分别为这两个应用打开22和21端口 Xshell使用通过Xshell连接远程服务器 ... 阅读全文 »
394.字符串解码 发表于 2020-09-04 | 分类于 算法题目 字数统计: 239 | 阅读时长 ≈ 1 题目描述 题解辅助栈因为要从内向外地生成字符串, 所以可以使用栈结构来完成相应的功能 遍历整个字符串, 当遍历到”[“时, 就将当前的字符串和乘数放入栈中, 然后来研究括号里的字符串 当遍历到 “]” 时, 就将栈顶的乘数和之前的字符串取出来拼接在一起 12345678910111213141516 ... 阅读全文 »
338.比特位计数 发表于 2020-09-04 | 分类于 算法 字数统计: 165 | 阅读时长 ≈ 1 题目描述 题解动态规划通过二进制数的规律可知, 如果当前数字为奇数, 那么它包含1的数量一定为它前一个数的+1, 如果当前数字为偶数, 那么它包含1的数量一定与其一半数值的数相等, 例如4中1的数量与2中1的数量是相同的, 因为二倍关系只是左移或者右移的结果, 1的数量没有改变 1234567891 ... 阅读全文 »
301.删除无效的括号 发表于 2020-09-03 | 分类于 算法 字数统计: 392 | 阅读时长 ≈ 2 题目描述 题解回溯算法对于一个字符串, 首先可以根据这个字符串中左右括号的数量确定出需要删除多少个左括号或者右括号. 要么删若干个左括号, 要么删若干个右括号, 不可能存在左右括号都删除的情况. 在这个基础上, 对整个字符串进行回溯. 例如一共要删除两个左括号, 那么遍历整个字符串时, 如果碰到了左 ... 阅读全文 »
279.完全平方数 发表于 2020-09-03 | 分类于 算法 字数统计: 163 | 阅读时长 ≈ 1 题目描述 题解动态规划状态定义: dp[i]表示数字i 由几个数的平方相加. 初始化: 新建一个占n+1空间的一维数组, 令dp[i] = i, 含义为一个数i最差的情况也是由i个1相加得来的 状态转移: 123for (int j = 1; i - j * j >= 0; j++) ... 阅读全文 »