- 博客(3)
- 收藏
- 关注
原创 位运算技巧
1. 判断是否是2的幂 一个数是2的幂,也就是它的二进制表示中仅有一个1. 1.1n&(n-1)==0时,n为2的幂。 n&(n-1)会将n中最低位的1去除,所以当这个式子等于0时,也就说明了n中二进制位只有一个1,也就是n为2的幂。 1.2 n&(-n)==n时,n为2的幂 n&(-n)可以用来获取n二进制表示中最低位的1,负数是按照补码规则存储的,-n是n的每一位取反再加1,因此两者相与,高位全部变成0,最低位的1和之后的0不变...
2021-10-28 11:27:30
85
原创 leetcode 刷题总结,递归回溯去重问题
以78题 子集,90题 子集二为例 78题 子集 给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 class Solution { public: vector<vector<int>> ans; int n,k; vector<vector<int>> subsets(vector<int>& nums) { n=nums.si.
2020-09-04 23:32:32
174
原创 leetcode 刷题 回文子串(647)
leetcode 刷题 回文子串(647) 其他类似的求最长回文子串,也是同样的思路 int dp[1001][1001];//dp[i][j]表示从i到j的子字符串是否为回文,若是为1 int countSubstrings(string s) { int n=s.size(); int ans=0; for(int i=0;i<n;i++)//预处理子字符串长度为1,为2的 { dp[i]
2020-09-04 23:20:56
124
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人