计算位1的个数方法总结
写在前面
之前介绍过一种计算整数二进制表示中位1个数的文章, 是介绍通过不断减去右移一位之后的值的方法来完成的, 后来发现还有一种更快更经典的方法, 下面来总结下.
191. 位1的个数 - 力扣(LeetCode);
各种思路
转换字符串
def calcbit1_v1(n):
return bin(n).count("1")
# return n.bit_count()
取最低位
def calcbit1_v2(n):
ans = 0
while n:
tmp = n & 1 # 取最末位
ans += tmp
n >>= 1 # 进位
return ans...
透视http协议课程实验环境配置(基于阿里云服务器ubuntu)
写在前面
最近看看罗剑锋老师的透视HTTP协议, 折腾一下实验环境.
本来是想用mac(arm)来做的, 无奈Openresty的一个lua扩展不给力, 本地编译之后依然不行(表现为服务器错误), 所以就只能借助Intel了, 当然老师也提供了一种思路: 借助dockerfile构建基于arm的镜像实验环境(实在是因为我电脑内存不行, 不然高低折腾一下).
那么下面就开始在阿里云服务器(Ubuntu x86_64)上构建实验环境了.
主要用到的就是:
Openresty (安装起来比较麻烦, 需要源码编译)
telnet (apt安装即可)
Firefox(或者chromium, Chrome, edge) apt安装
wireshark (apt安装, 但是打不开, 可...
C++11继承构造函数与委托构造函数详解
写在前面
看完了深入理解C++11的继承构造函数和委托构造函数部分, 更是对C++的新特性有了一些理解和认识, 下面来总结下.
测试环境:
MacOS arm64
clang 15.0.6 llvm(with brew)
继承构造
继承构造函数用于解决基类中含有多个构造函数而派生类需要使用这些继承下来的构造函数的情况, 通过using关键字来实现简洁的函数继承.
例1
在新特性发布之前, 只能像下面这样完成构造函数的继承.
#include <iostream>
using namespace std;
struct A {
A() { cout << "A::A()\n"; }
A(int i) { cout &l...
Test Jekyll Text Theme 1
Success Text.
{:.success}
Info Text.
{:.info}
Warning Text.
{:.warning}
Error Text.
{:.error}
会被Jekyll渲染成:
Success Text.
Info Text.
Warning Text.
Error Text.
`success`{:.success}
`info`{:.info}
`warning`{:.warning}
`error`{:.error}
会被Jekyll渲染成:
success
info
warning
error
力扣1到n求和不使用乘除法循环语句方法总结
题目
剑指 Offer 64. 求1+2+…+n;
剑指 Offer 64. 求1+2+…+n
求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
示例 1:
输入: n = 3
输出: 6
示例 2:
输入: n = 9
输出: 45
限制:
1 <= n <= 10000
想法1: 库函数
我的想法比较简单..就是调用库函数, 例如Python自带的sum()函数, 代码的话就是简单的一行:
class Solution:
def sumNums(self, n: int) -> int:
return sum(range(n+1))
...
C++实战笔记题目
关于 C++,下面哪个描述是错误的?
C++ 程序从“诞生”到“消亡”,要经历四个阶段:编码、预处理、编译和运行
“编码”是 C++ 程序生命周期中最重要的阶段
C++ 支持“多范式”编程,各个编程范式彼此独立,不相互依赖
“面向过程”和“面向对象”是 C++ 中最基本的编程范式
A,正确,参见第 1 讲。
B,正确,编码阶段决定了后面三个阶段的质量。
C,错误,编程范式不是完全独立的,而是互相依赖互相渗透,没有绝对明确的界限。
D,正确,“面向过程”和“面向对象”是 C++ 最早支持的两个范式。
现代 C++ 内置了对并发、线程的支持,下面哪些说法是正确的?
call_...
共计 465 篇文章,59 页。
您是Zorch的第 个小伙伴
Hits