摘要:
1.题目 2.解法 3.总结 阅读全文
摘要:
1. 动态规划的思想 动态规划的思想是通过把原问题分解成相对简单的子问题的方式来解决复杂问题的方法。 2. 适应场景 动态规划适用于具有最优子结构和重叠子问题的问题。 最优子结构是指问题的最优解可以由子问题的最优解推导得到,重叠子问题是指不同的子问题可能包含相同的更小的子问题。 3. 动态规划的一般 阅读全文
摘要:
1. 动态规划的思想 动态规划的思想是通过把原问题分解成相对简单的子问题的方式来解决复杂问题的方法。 2. 适应场景 动态规划适用于具有最优子结构和重叠子问题的问题。 最优子结构是指问题的最优解可以由子问题的最优解推导得到,重叠子问题是指不同的子问题可能包含相同的更小的子问题。 3. 动态规划的一般 阅读全文
摘要:
1.题目 这道题的考察点 是你对Java中位移运算符的理解和应用。 你需要知道左移、右移和无符号右移的区别,以及它们在二进制数上的效果。 你还需要注意负数的表示和处理,以及溢出的可能性。 2.解法 思路 这道题的目标是计算两个整数之间的汉明距离,也就是它们对应二进制位不同的个数。一个简单的方法是使用 阅读全文
摘要:
1.题目 https://leetcode.cn/problems/valid-parentheses/ 2.解法 2.1 解法一:利用栈 思路 是使用一个栈来存储左括号,然后遍历字符串中的每个字符, 如果是左括号就入栈, 如果是右括号就出栈并和栈顶元素比较是否匹配。 如果不匹配或者栈为空,就说明字 阅读全文
摘要:
1.题目 https://leetcode.cn/problems/add-strings/ 2.解法 思路 使用双指针从后往前遍历两个字符串,同时用一个变量 carry 来记录进位。每次计算两个字符的和,加上 carry ,然后将结果的个位数放入一个 StringBuilder 中,将结果的十位数 阅读全文
摘要:
1.题目 https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/ leetcode 28 字符串匹配之BF(Brute Force)算法是一种简单的字符串匹配算法,也叫暴力匹配算法。它的思想是将 阅读全文
摘要:
1.题目 2.解法 3.总结 阅读全文
摘要:
1.题目 https://leetcode.cn/problems/counting-bits/ 2.解法 2.1 解法一:动态规划+ 位运算 其中一种解法是使用位运算,利用i和i&(i-1)的关系来计算1的个数。 具体来说,可以观察到i&(i-1)是将i的最低位的1变成0的结果,所以i和i&(i- 阅读全文
摘要:
1.题目 2.解法 3.总结 阅读全文
摘要:
1. 常见场景 2 具体详情 2.1 取模 2.1.1 位运算可以处理取模的原理 取模运算(%)是求一个数除以另一个数的余数,比如7 % 3 = 1,表示7除以3余1。取模运算在一些场景中很有用,比如判断一个数是否是奇数或偶数,或者将一个大数映射到一个小范围内。 位运算(&)是按位与运算,即对两个数 阅读全文
摘要:
1.题目 https://leetcode.cn/problems/single-number/ 考察点 位运算,即对二进制数进行的运算,比如与、或、非、异或等。 异或运算,即按位比较两个数,如果不同则为1,相同则为0。异或运算的符号是^。 异或运算的性质和应用,比如:任何数和0异或,结果还是原来的 阅读全文
摘要:
1. 位运算的定义 Java位运算是对操作数的二进制位进行运算,操作数和计算结果都是整型。Java位运算有以下几种类型:&与,|或,^异或,~取反,<<左移,>>右移,>>>无符号右移。 2.Java位运算的场景 Java位运算的场景有很多,比如: 判断奇偶数:a & 1 == 0 表示a是偶数,a 阅读全文
|