算法 | 第5章 位操作相关《程序员面试金典》
第5章 位操作相关《程序员面试金典》
- 前言
- 0. *经验总结
- 0.1 程序员面试金典 P94
- 0.2 Java中的位运算相关代码
- 1. 算数移位
- 2. 逻辑移位
- 3. 获取数位
- 4. 设置数位
- 5. 清零数位
- 6. 更新数位
- 0.3 Java判断double是否为整数的方法
- 0.4 Java进制转换API
- 0.5 Math类常用API
- 0.6 位操作技巧(重要)
- 0.7 Java运算优先级
- 0.8 Java中常用基本类型的取值范围
- 0.9 特殊二进制
- 1. 插入 [easy]
- 1.1 考虑点
- 1.2 解法
- 1.2.1 位运算(优)
- 2. 二进制数转字符串 [medium]
- 2.1 考虑点
- 2.2 解法
- 2.2.1 count计数法
- 2.2.2 折半比较法(优)
- 3. 翻转数位 [easy]
- 3.1 考虑点
- 3.2 解法
- 3.2.1 逐个遍历法
- 3.2.2 滑动窗口法(优)
- 4. 下一个数 [medium]
- 4.1 考虑点
- 4.2 解法
- 4.2.1 位运算法(优)
- 4.2.2 暴力穷举法
- 4.2.3 看不懂啥方法
- 6. 整数转换(汉明距离) [easy]
- 6.1 考虑点
- 6.2 解法
- 6.2.1 异或遍历法(优)
- 7. 配对交换 [easy]
- 7.1 考虑点
- 7.2 解法
- 7.2.1 隔位操作法
- 7.2.2 特殊二进制法(优)
- 8. 绘制直线 [medium]
- 8.1 考虑点
- 8.2 解法
- 8.2.1 逐组分析法
- 8.2.2 位运算(优)
- 最后
前言
本系列笔记主要记录笔者刷《程序员面试金典》算法的一些想法与经验总结,按专题分类,主要由两部分构成:经验值点和经典题目。其中重点放在经典题目上;
0. *经验总结
0.1 程序员面试金典 P94
-
位操作是优化代码的一种技巧;
-
一些操作技巧:(1s和0s表示一串1和0)
- 乘2:左移1位;
- 异或^:同0异1;
- 某数与111100做与&运算:将某数最后2位清零;
异或 与 或 x ^ 0s = s x & 0s = 0 x | 0s = x x ^ 1s = ~x x & 1s = x x | 1s = 1s x ^ x = 0 x & x = x x | x = x - 根据正数求复数:所有取反加1,符号位变为1;
- 逻辑右移与算数右移:对于数 1 0110101(-75);
- **逻辑右移 >>> **:移位后 0 1011010(90),最终得到0;
- **算数右移>> **:移位后 1 1011010(-38),最终得到-1;
0.2 Java中的位运算相关代码
1. 算数移位
算数左移乘2补0;算数右移除2,正数补0复数补1;持续算移得-1或0;
int repeatedAritmeticShift(int x, int count){for(int i = 0; i < count; i++){x >>= 1; //算数右移1位}return x;
}
2. 逻辑移位
逻辑左移乘2补0;逻辑右移除2补0;持续逻移得0;
int repeatedLogicalShift(int x, int count){for(int i = 0; i < count; i++){x >>>= 1; //逻辑右移1位}return x;
}
3. 获取数位
将1算数左移i位得0001000(假设i为3),接着与num做位与&运算,将除i位外的位清零,保留i位。检查结果为1(或0),则num第i位为1(或0);
boolean getBit(int num, int i){return ((num & (1 << i)) != 0);
}
4. 设置数位
将1算数左移i位得0001000(假设为3),接着与num做位或|运算,将i位设置为1;
int setBit(int num, int i){return num | (1 << i);
}
5. 清零数位
清零第i位:
将1算数左移i位后取反得1110111(假设i为3),接着与num做位与&运算,将i位清零,其余位不变;
int clearBit(int num, int i){int mask = ~(1 << i);return num & mask;
}
清零最高位到第i位(包括最高和第i位):
将1算数左移i位得0001000(假设i为3),减1得0000111,接着与num做位与&运算,保留后i位;
int clearBitMSBthroughI(int num, int i){int mask = (1 << i) - 1;return num & mask;
}
清零第i位到第0位(包括第i位和第0位):
将全1构成的数 1111111 算数左移i位得 1111000,接着与num做位与&运算保留前面;
int clearBitsIthrough0(int num, int i){int mask = (-1 << (i+1));return num & mask;
}
6. 更新数位
将第i位设置为v:先将1算数左移i位取反得1110111(假设i为3),与num做位与&运算将i位清零,得结果1。将待写入值v左移i位得结果2:0001000(或0000000)。结果1与结果二做位或|运算即可;
int updateBit(int num, int i, boolean bitIs1){int value = bitIs1 ? 1 : 0;int mask = ~(1 << i);return (num & mask) | (value << i);
}
0.3 Java判断double是否为整数的方法
Math.abs(num - (int)num) < 0.000001
0.4 Java进制转换API
- Integer类的静态方法:
static String toBinaryString(int i)
:返回数字i的二进制数字符串;static String toOctalString(int i)
:返回数字i的八进制数字符串;static String toHexString(int i)
:返回数字i的十六进制数字符串;static int parseInt(String s)
: 将字符串参数s解析为带符号的十进制整数;static int parseInt(String s, int radix)
: 将整数字符串s(radix用来指明s是几进制)转换成10进制的整数;
0.5 Math类常用API
static double abs(double a)
:返回double值的绝对值;static double ceil(double a)
:向上取整,返回大于等于参数的最小的整数;static double floor(double a)
:向下取整,返回小于等于参数最大的整数;static long round(double a)
:返回最接近参数的long;(相当于四舍五入方法)static int max(int a, int b)
:返回a与b中较大值;static int min(int a, int b)
:返回a与b中较小值;static double log10(double a)
:返回 double值的基数10对数;static double pow(double a, doubl b)
:a^b;static double sqrt(double a)
:返回 double值的正确舍入正平方根;
0.6 位操作技巧(重要)
普通写法 | 位运算 | 含义 |
---|---|---|
n == 1 | in & 1 | 判断n是否为1 |
n = n & (n-1) | 将最低位的1清零 | |
n == Math.pow(2, x) | (n & (n-1)) == 0 | 判断n是否为2的x次方 |
0.7 Java运算优先级
0.8 Java中常用基本类型的取值范围
常用类型 | 多少字节 | 范围 |
---|---|---|
byte | 1*8=8 bit | -28 ~ 27 (-128 ~ 127) |
short | 2*8=16 bit | -216 ~ 215 (-32768 ~ 32767) |
int | 4*8=32 bit | -232 ~ 231 (-2147483648 ~ 2147483647) |
long | 8*8=64 bit | -264 ~ 263 (-18446744073709551616 ~ 18446744073709551615) |
float | 4*8=32 bit | -232 ~ 231 (-2147483648 ~ 2147483647) |
double | 8*8=64 bit | -264 ~ 263 (-18446744073709551616 ~ 18446744073709551615) |
char | 2*8=16 bit | |
boolean | 8 bit | true / false |
0.9 特殊二进制
在一些方法中利用特殊二进制有妙招(如:7.配对交换);
十六进制 | 二进制 | 说明 |
---|---|---|
0xaaaaaaaa | 10101010101010101010101010101010 | 偶数位为1,奇数位为0 |
0x55555555 | 1010101010101010101010101010101 | 偶数位为0,奇数位为1 |
0x33333333 | 110011001100110011001100110011 | 1和0每隔两位交替出现 |
0xcccccccc | 11001100110011001100110011001100 | 0和1每隔两位交替出现 |
0x0f0f0f0f | 00001111000011110000111100001111 | 1和0每隔四位交替出现 |
0xf0f0f0f0 | 11110000111100001111000011110000 | 0和1每隔四位交替出现 |
1. 插入 [easy]
1.1 考虑点
- 解决多位操作的问题时,需要进行测试,否则很容易犯下差一位的错误;
1.2 解法
1.2.1 位运算(优)
public int insertBits(int N, int M, int i, int j) {int mask = ~(((int)Math.pow(2, j-i+1)-1)<<i);int m = M<<i;int result = (N & mask);return result | m;
}
- 执行时间:100.00%;内存消耗:95.99%;
2. 二进制数转字符串 [medium]
2.1 考虑点
- 注意准备好测试用例;
2.2 解法
2.2.1 count计数法
public String printBin(double num) {int count = 0;boolean isFind = false;while(count <= 30 && !isFind){num*=2;count++;if(Math.abs(num - (int)num) < 0.000001){isFind = true;}}if(isFind){StringBuilder sb = new StringBuilder();sb.append("0."); //这里注意不要写成 sb.append(0.)int n = (int)num;while(n != 0){n/=2;count--;}for(int i = 0; i < count; i++){sb.append(0);}sb.append( Integer.toBinaryString( (int)num) );return sb.toString();} else {return "ERROR";}
}
- 执行时间:100.00%;内存消耗:45.18%;
- 统计需要乘多少个2才变成整数,减去转成二进制后的位数,得有效位0的数量;
2.2.2 折半比较法(优)
public String printBin(double num) {String str = "0.";double i = 0.5;while(str.length() < 32){if(num-i >= 0){str += "1";num = num - i;}else{str += "0";}if(num == 0){return str;}i /= 2;}return "ERROR";
}
- 执行时间:100.00%;内存消耗:97.48%;
- num逐个减去 2-1、2-2、2-3……减法成功则为添1,否则添0;
3. 翻转数位 [easy]
3.1 考虑点
- 注意num为负数的情况,num=-1时,其二进制数为32个1;
3.2 解法
3.2.1 逐个遍历法
public int reverseBits(int num) {//注意num为-1的情况if(num == -1){return 32;}String binaryString = Integer.toBinaryString(num);int a = 0;int b = 0;int max = 0;int count = 0;for(int i = 0; i < binaryString.length(); i++){if(binaryString.charAt(i) == '0'){a = b;b = count;count = 0;if(a+b > max){max = a+b;}} else {count++;}} //最后一位不为0时,count的数出不来;if(count != 0){max = Math.max(b+count, max);}return max+1;
}
- 执行时间:100.00%;内存消耗:61.13%;
- 时间复杂度:O(n),n为整数的位数;注意需要跟面试官说明n的含义,不然有可能会有歧义;
- 空间复杂度:O(1);
- 需要注意最后一位不为0的情况与num为负数的情况;
3.2.2 滑动窗口法(优)
public int reverseBits(int num) {int max = 0;int count = 0;boolean flag = false;int start = 0;for (int i = 31; i >= 0; i--) {int i1 = (num >> i) & 1;if (i1 == 1) {count++;max = Math.max(max, count);} else {if (!flag) {count++;flag = true;start = i;max = Math.max(max, count);} else {count = 0;i = start;flag = false;}}}return max;
}
- 执行时间:100.00%;内存消耗:99.05%;
4. 下一个数 [medium]
4.1 考虑点
- 注意特殊值,两个边界范围;
- 注意移位方向;
4.2 解法
4.2.1 位运算法(优)
public int[] findClosedNumbers(int num) {if(num == 1){return new int[]{2,-1};}if(num == 2147483647){ //注意特殊值return new int[]{-1,-1};}//较大:从右往左遍历,找到遇到1后的一个0(期间统计1的个数count1),交换0和1。//如果n不为1,需要把其余1后移;如果n为1,不做处理;boolean isFound0 = false;int count1 = 0;int i = 0;while(!isFound0){if(count1 != 0 && ((num >> i) & 1) == 0){ //注意加括号,不然优先级不够isFound0 = true;}if(((num >> i) & 1) == 1){count1++;}i++;}int moreNum = 0;if(count1 == 1){moreNum = num >> (i-1);moreNum++;moreNum = moreNum << (i-1);} else {moreNum = num >> i-1;moreNum++;moreNum = moreNum << (i-count1);for(int k = 0; k < count1-1; k++){moreNum = moreNum << 1;moreNum++;}}//较小:从右往左遍历,找到第一个1(统计期间0的个数count0)。//如果m不为0,则该1退一位;反之,遍历到有0后的第一个1,该1退位,后面1补上接着;boolean isFound1 = false;int count0 = 0;int j = 0;while(!isFound1){if(((num >> j) & 1) == 1){isFound1 = true;} else {count0++;}j++;}int lessNum = 0;if(count0 == 0){isFound0 = false;isFound1 = false;count1 = 1;while(!isFound0){if(((num >> j) & 1) == 0){isFound0 = true;} else {count1++;}j++;}while(!isFound1){if(((num >> j) & 1) == 1){count1++;isFound1 = true;}j++;}lessNum = num >> j;lessNum = lessNum << 1;for(int k = 0; k < count1; k++){lessNum = lessNum << 1;lessNum++;j--;}lessNum = lessNum << (j-1);} else {lessNum = num >> j; //注意方向lessNum = lessNum << 2;lessNum++;lessNum = lessNum << (j-2);}return new int[]{moreNum, lessNum};
}
- 执行时间:100.00%;内存消耗:89.61%;
4.2.2 暴力穷举法
public int[] findClosedNumbers(int num) {if(num == 1){return new int[]{2,-1};}if(num == 2147483647){ //注意特殊值return new int[]{-1,-1};}int up = num + 1;//向上枚举int down = num - 1;//向下枚举int count = findOneCount(num);//num的1的个数while (findOneCount(up) != count) {up++;if (up < 0) {//越界了那就是找不到,设置为-1up = -1;break;}}while (findOneCount(down) != count) {down--;if (down < 0) {//变为负数了那就是找不到了,设置为-1down = -1;break;}}return new int[]{up, down};
}
//求数的二进制1的个数
private static int findOneCount(int num) {int count = 0;while (num != 0) {num &= num - 1;count++;}return count;
}
- 执行时间:100.00%;内存消耗:55.20%;
4.2.3 看不懂啥方法
public int[] findClosedNumbers(int num) {int mx = nextOne(num), mi = ~nextOne(~num);return new int[]{mx > 0 ? mx : -1, mi > 0 ? mi : -1};
}
public int nextOne(int x){long lowbit = x & (-x);long toZero = x + lowbit;return (int)((x & ~toZero) / lowbit >> 1 | toZero);
}
- 执行时间:100.00%;内存消耗:45.16%;
- 如果1的个数不同直接往低位加,这里要求相同,所以只能把最右边的连续1左移,然后保留连续1区间的最左一个,剩下的(连续长度-1)个的搬到全局最右边,步骤:
- 1.先求出二进制最右边的1得到 lowbit = x & (-x);
- 2.求出最左1也就是消去连续1得到连续0 toZero = x + lowbit;
- 3.把(最右连续1长度-1)个1搬到全局最优 (x & ~toZero) / lowbit >> 1;
- ps: ~toZero 与 x 进行并得到最右连续1部分 /lowbit 后把1搬到右边 这里因为相加进位,所以要右移去掉一个1
6. 整数转换(汉明距离) [easy]
6.1 考虑点
- 将最低位清零的写法
n = n & (n-1)
;
6.2 解法
6.2.1 异或遍历法(优)
//第一种写法
public int convertInteger(int A, int B) {int C = A ^ B;int count = 0;for(int i = 0; i < 32; i++){if(((C >> i) & 1) == 1){count++;}}return count;
}
//第二种写法
public int convertInteger(int A, int B) {int count = 0;for(int C = A ^ B; C != 0; C = C >>> 1){count += C & 1;}return count;
}
//第三种写法(优)
public int convertInteger(int A, int B) {int count = 0;for(int C = A ^ B; C != 0; C = C & (C-1)){count++;}return count;
}
- 执行时间:100.00%;内存消耗:12.36%;
- 先做异或操作,再遍历每一位统计1的个数;
- 第三种写法的
c = c & (c-1)
是清除最低位1;
7. 配对交换 [easy]
7.1 考虑点
- 可以询问面试官需要处理的数据位数;
7.2 解法
7.2.1 隔位操作法
public int exchangeBits(int num) {int moreNum = num << 1;int lessNum = num >> 1;int result = lessNum;for(int i = 1; i < 31; i+=2){if(((moreNum >> i) & 1) != ((lessNum >> i) & 1)){result = change(result, i);}}return result;
}public int change(int lessNum, int i){int mask = ~(1 << i);// i位清零int result = lessNum & mask;if(result != lessNum){return result;} else {return (result | (1 << i));}
}
- 执行时间:100.00%;内存消耗:63.11%;
7.2.2 特殊二进制法(优)
public int exchangeBits(int num) {//奇数int odd = num & 0x55555555;//偶数int even = num & 0xaaaaaaaa;odd = odd << 1;even = even >>> 1;return odd | even;
}
//简短写法
public int exchangeBits(int num) {return ((num&0x55555555) << 1) | ((num&0xaaaaaaaa) >>> 1);
}
- 执行时间:100.00%;内存消耗:48.19%;
- 分别取出奇数位和偶数位,移动后做或运算;
- 0x55555555 = 0b0101_0101_0101_0101_0101_0101_0101_0101
- 0xaaaaaaaa = 0b1010_1010_1010_1010_1010_1010_1010_1010
- 用这两个数做与运算,把奇数位和偶数位取出来。然后位左移奇数位,右移偶数位。再把奇数位和偶数位做或运算;
- 这里运用逻辑右移而不是算数右移是因为我们希望符号位被0填充;
- 上述代码实现的是32位整数,处理64位整数需要修改掩码;
8. 绘制直线 [medium]
题目理解:
8.1 考虑点
- 一个简单的做法是:用for循环迭代,从x1到x2,一路设定每个像素,但这样做太没劲,效率不高;
- 处理这个问题需要十分细心,其中有很多陷阱和特殊情况;比如需要考虑x1到x2出于同一个字节的情况;
8.2 解法
8.2.1 逐组分析法
public int[] drawLine(int length, int w, int x1, int x2, int y) {int higth = length*32/w; //屏幕高度int intNum = w/32; //一行有多少个intint[] result = new int[length];int index = 0;//前面第0 ~ y-1行为0,y*intNum个0//第y行输出数字,intNum个数字//后面第y+1 ~ hight-1行开始为0,(hight-y-1)*intNum个0//对于数组,前面至下标(x1+y*w)/32-1为0;从下标(x2+y*w)/32+1开始到结尾为0;中间为数//第一个数,下标为iint i = (x1+y*w)/32;int min = Math.min( ((x1 / 32 + 1) * 32 - x1), (x2-x1+1));for (int j = 0; j < min; j++) {result[i] = result[i] << 1;result[i]++;}if(min == x2-x1+1){result[i] = result[i] << (32-x2-1);}i++;//中间-1的个数numOneint numOne = 0;if(x2/32 != x1/32){numOne = x2/32 - x1/32 -1;}if(numOne != 0){for(int j = i; j < numOne + i; j++){result[j] = -1;}}//最后一个数,下标为i+numOnei = i + numOne;if(i < length && (x2-x1)/32 > 0){for (int j = 0; j < (x2 - (x2 / 32) * 32 + 1); j++) {result[i] = result[i] << 1;result[i]++;}result[i] = result[i] << (32 - x2 + (x2/32)*32 -1);if( (x2 - (x2/32)*32 + 1) == 32){result[i] = -1;}}return result;
}
- 执行时间:100.00%;内存消耗:67.24%;
- 需要注意大量细节,包括中间-1的个数numOne,以及考虑最后一个数可以跟以一个重合的情况
(x2-x1)/32 > 0
; - 过于复杂,思路相同的不同实现方法如下;
8.2.2 位运算(优)
public int[] drawLine(int length, int w, int x1, int x2, int y) { int[] ans=new int[length];int low=(y*w+x1)/32;int high=(y*w+x2)/32;for(int i=low;i<=high;i++){ans[i]=-1;}ans[low]=ans[low]>>>x1%32;ans[high]=ans[high]&Integer.MIN_VALUE>> x2 % 32;return ans;
}
- 执行时间:100.00%;内存消耗:51.73%;
最后
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 12.简单文件写入
简单文件写入—同步和异步 fs.writeFileSync(file, data[, options]) fs.writeFile(file, data[, options], callback) -file 要操作的文件路径 -data 要写入的数据 -options 选项,可以对写入进行一些设置 -callback 当写入完成以后执行的函数 注…...
2024/4/21 18:15:01 - 给定两个数,求这两个数的最大公约数例如:输入:20 40输出:20
int main() {int a 0;int b 0;int c 0;scanf("%d%d", &a, &b);while (c a%b)//辗转相除法{a b;b c;}printf("%d ", b);return 0; }...
2024/5/2 8:42:14 - 力扣 287. 寻找重复数
题目 给定一个包含 n 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 ,找出 这个重复的数 。 你设计的解决方案必须不修改数组 nums 且只…...
2024/4/21 18:14:59 - Java基础知识Day02
一、Eclipse的快捷方式 Alt / 补全代码 Alt 向下(↓)或向上键(↑) 移动当前选中的行,向上或向下 Ctrl / 单行注释 Ctrl shift / 多行注释 Ctrl shift \ 取消多行注释 Ctrl D 删除当前行 …...
2024/4/21 18:14:57 - 沙发面料怎么申请ASTM E1353的测试呢?
面料属于ASTM E1353的产品范围内,可根据标准送样测试。 样品规格: 3 pieces x203 mmx 203 mm 3 pieces x 203 mmx381mm or 1 yard 产品范围: 该标准应用于软体家具的标准部件:覆层面料,内衬面料,缝边,装…...
2024/4/21 18:14:56 - 07-A. DS串应用--KMP算法
07-串应用- 题目描述 学习KMP算法,给出主串和模式串,求模式串在主串的位置 算法框架如下,仅供参考 输入 第一个输入t,表示有t个实例 第二行输入第1个实例的主串,第三行输入第1个实例的模式串 以此类推 输出 第一行…...
2024/4/24 13:23:14 - 要弄明白PM2,从这里开始!
一、PM2是什么? PM2是 node.js项目 的进程管理工具,常用功能如下: 让 node.js项目 能在文件更新时自动重启;让 node.js项目 能在服务器异常重启后也能自动启动;可以试试查看 ndoe.js项目 的输出日志,已经…...
2024/4/28 1:54:49 - 记使用cookiecutter 搭建django项目遇到的一个bug
错误信息: compile_func self.tags[command] KeyError: translate网上找了没有类似的报错内容和解决办法,对比正常能运行起来的代码发现是模板变量不一样: cookiecutter 生成的是 translate {% translate "Verify Your E-mail Address…...
2024/4/29 9:50:20 - 主流的数据库连接池
1.数据库连接池概述 数据库连接的建立是一种耗时、性能低、代价高的操作,频繁的数据库连接的建立和关闭极大的影响了系统的性能。数据库连接池是系统初始化过程中创建一定数量的数据库连接放于连接池中,当程序需要访问数据库时,不再建立一个新…...
2024/4/21 18:14:52 - Zabbix监控Nginx全部后端服端口健康度
思路 1.通过Nginx.conf的里面upstream模块里面的server去取出全部后端服务ip和端口 2.生成zabbix可识别的json文件 3.zabbix利用摸版自动发现去实现全部ip端口的添加 脚本 #!/usr/bin/python3 # chenzhenhua#########解析配置文件 dir "/usr/local/tengine/conf/nginx…...
2024/4/21 18:14:51 - 同时安装JDK8和11,并自由切换
Java下载地址 Oracle官网 下载对应的版本 建议下载exe格式安装,看个人喜好 环境变量配置 配置内容 JAVA_HOMEPATH(%JAVA_HOME%\bin, %JAVA_HOME%\jre\bin) 步骤 右键我的电脑,打开属性高级系统设置环境变量在系统变量中添加…...
2024/5/2 6:07:12 - 核心类库——XML与JSON
一、 XML 1.1 简介 xml为可扩展标记语言(eXtensible Markup Language) 特性: XML具有平台无关性,是一门独立的标记语言XML具有自我描述性 用途: 网络数据传输数据存储配置文件 虽然.XML文件是保存XML数据的一种…...
2024/4/24 15:55:37 - android10.0(高通865)A/B系统切换
编译bootctl工具 编译得到bootctl可执行程序,push到system/bin目录。 使用bootctl工具...
2024/4/20 13:34:03 - Java:Linux上禁止使用TLS1.0、TLS1.1、SSLv3协议
which java > /user/bin/javals -lrt /user/bin/java > /etc/alternatives/javals -lrt /etc/alternatives/java > /usr/lib/jvm/java-1.8/jre/bin/java打开 /usr/lib/jvm/java-1.8/jre/security/java.security 文件在文件最后添加 jdk.tls.disabledAlgorithms TLS1.…...
2024/5/3 10:11:01 - 【小功能】根据某几个变量值判断另外几个变量的值是否为空
功能介绍: 今天遇到的小功能,有radio1,radio2,radio3,radio4这四个变量代表四个模块。gtcode1,gtcode2,gtcode3,gtcode4四个变量代表对应四个模块的规格存储。用户可以再四个模块改…...
2024/4/20 13:34:03 - 图像分割算法(二)
导读:在对处理后的图像数据进行分析之前,图像分割是最重要的步骤之一。它的主要目标是将图像化分为与其中含有的真实世界的物体或区域有枪相关性的组成部分。 加助理小姐姐威信:领取课件资料,还有200G人工智能大礼包内含ÿ…...
2024/4/25 11:50:12 - 苹果App Store搜索出Bug,网友:完美避开所有正确答案
整理 | 祝涛 出品 | CSDN(ID:CSDNnews) 10月28日,有网友反映,苹果App Store出现故障,无法准确进行搜索。 此次Bug导致众多App出现“张冠李戴”的问题。许多网友反映,在苹果App Store中搜索某A…...
2024/4/20 13:33:59 - LINUX命令-AWK_笔记
初识awk命令,感觉世界又美好了一点,话不多说,我们举个例子: awk -F [:,] /文字过滤条件/ {if($3<1000){sum$3;cnt1}}END {print sum,cnt,sum/cnt} test.log 先大概介绍下这段命令的功能:对日志进行过滤࿰…...
2024/4/20 13:34:00 - 跨境电商营销知识:亚马逊QA的基础知识
亚马逊QA是想要购买商品的客户提出改产品的相关问题的版块,后平台将通知该产品的商家或购买此产品的其他客户来回应提出问题的客户问题。回答后会在前端显示该信息,以供其他潜在客户参考。这个模块的最大效果是它可以帮助潜在的消费者消除他们的疑虑&…...
2024/4/22 17:52:45 - 视觉SLAM十四讲CH6代码解析及课后习题详解
gaussNewton.cpp #include <iostream> #include <chrono> #include <opencv2/opencv.hpp> #include <Eigen/Core>//Eigen核心模块 #include <Eigen/Dense>//Eigen稠密矩阵运算模块using namespace std; using namespace Eigen; //高斯牛顿法拟合…...
2024/4/21 18:14:49
最新文章
- 在进行YOLOv3模型部署时,如何评估和选择最适合的硬件平台?
在进行YOLOv3模型部署时,评估和选择最适合的硬件平台通常涉及以下几个关键因素: 1. 模型复杂度和性能需求:YOLOv3模型的复杂度较高,特别是使用更深的网络结构时。需要选择能够满足模型计算需求的硬件平台。 2. 实时性要求&#…...
2024/5/3 18:45:00 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - Linux的软链接和硬链接
1、软链接 概念:给文件创建一个快捷方式,依赖原文件,和普通文件没有区别。 特性: 可以给存在的文件或目录创建软链接可以给不存在的文件或目录创建软链接可以跨文件系统创建软链接删除软链接不影响原文件、删除原文件会导致软链…...
2024/4/30 17:33:33 - 如何设计一个类似Dubbo的RPC框架
首先有个注册中心,提供的服务在注册中心注册保留各个服务的信息,用zookeeper来做。然后消费者需要去注册中心拿对应的服务信息,而且每个服务可能会存在于多台机器上。接着就发起一次请求了,怎么发起?基于动态代理,面向接口获取到一个动态代理,就是接口在本地的一个代理,…...
2024/4/30 3:45:44 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/1 17:30:59 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/2 16:16:39 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/29 2:29:43 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/2 9:28:15 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/30 9:43:09 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/2 15:04:34 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/29 20:46:55 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/30 22:21:04 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/1 4:32:01 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/30 9:42:22 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/2 9:07:46 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/30 9:42:49 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57