原反补的问题
leetcode-371题,两整数之和,如果用python做的话是一道理解原反补问题的绝佳例子,py的int还是64位,难度反而更大了。首先放代码 MASK = 4294967296 #2 ** 32 MAXINT = 2147483647 #2 ** 31 - 1 MININT = 2147483648 # 2 ** 31 T32 = 4294967295 #2 ** 32 - 1 #...
leetcode-371题,两整数之和,如果用python做的话是一道理解原反补问题的绝佳例子,py的int还是64位,难度反而更大了。首先放代码 MASK = 4294967296 #2 ** 32 MAXINT = 2147483647 #2 ** 31 - 1 MININT = 2147483648 # 2 ** 31 T32 = 4294967295 #2 ** 32 - 1 #...
逗号运算符 使用逗号运算符是为了把几个表达式放在一起。整个逗号表达式的值为系列中最后一个表达式的值。从本质上讲,逗号的作用是将一系列运算按顺序执行。 表达式1, 表达式2 求解过程是:先求解表达式 1,再求解表达式 2。整个逗号表达式的值是表达式 2 的值。 最右边的那个表达式的值将作为整个逗号表达式的值,其他表达式的值会被丢弃。 var = (count=19, incr=10...
今天周赛补题的时候看到最后一道题有一个非常pythonic的解法,用到了迭代器判断子序列问题。 再一次感受到py做字符串题目的方便,迭代器的消耗这次彻底搞明白了。 from collections import Counter from itertools import permutations ''' 非常pythonic的code 统计单词的频率,如果一个单词出现了freq次,那么...
今天看到了一个比较神奇的宏定义,关于字节对齐的,转换成比较能理解的语言就如下了。 #include <iostream> using namespace std; // x 对 a 对齐,先 + ,之后利用低位取0 int align(int x,int a){ int add = (x + a - 1); // 类似于ceiling的操作,(x + a - 1)...
c++语言层面没有提供进程级别的原语支持,所以你只用关注c++层面的线程并发 区别于并发和并行,前者是指多个任务交替执行,后者是指多个任务同时执行 因此,当某个场景说的并发的时候,你可能要理解一下他到底指什么 多核机器,真的并行 单个核心,任务切换 1. 线程的使用 在c++11中,线程完全依赖于std::thread类,这个类的构造函数接受一个可调用对象,这个对象会在...