515 1 分钟

# 牛顿迭代法 367. 有效的完全平方数 - 力扣(LeetCode) 69. x 的平方根 - 力扣(LeetCode) # 367 class Solution {public: bool isPerfectSquare(int num) { // 初始的值用 num double x0 = num; while (true) { // 牛顿迭代法找零点 double x1 = (x0 + num / x0) / 2; if (x0 - x1 < 1e-6) { break; }...
2.7k 2 分钟

# 二分法 在一个有序数组中找一个数是否存在。 在一个有序数组中,找 >= 某个数最左侧的位置。 局部最小值问题(局部最小:在无序、任意两个相邻的数不相等的数组中,有局部最小定义:如果 0 位置的数小于 1 位置的数,那么 0 称做局部最小,如果位置 N-1 小于 N-2 上的数,那么 N-1 上的数称为局部最小,在相邻的三个数中,中间那个数最小,则这个数叫局部最小。 额好像就是极小值点)。 二分法一般用于有序数组中。 二分法有两种表现形式 闭区间 [left,right],这时的 while (left <= right) 要使用 <= ,因为...
242 1 分钟

# 并行和并发 并发指一台 CPU 同时(快速切换)处理多个任务。 并行指在多台 CPU 上同时处理多个任务。 看到过一个例子解释: 你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。 你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。 你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。 并发的关键是你有处理多个任务的能力,不一定要同时。 并行的关键是你有同时处理多个任务的能力。 所以我认为它们最关键的点就是:是否是『同时』。
4.6k 4 分钟

# 排序 # 交换 (swap) # 异或 异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为 “⊕”,计算机符号为 “xor”。其运算法则为: a⊕b = (¬a ∧ b) ∨ (a ∧¬b) 如果 a、b 两个值不相同,则异或结果为 1。如果 a、b 两个值相同,异或结果为 0。 异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用 1 表示真,0 表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为 0,异为 1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法(0+1+1,1+1 等于 1)。 异或略称为...
1.4k 1 分钟

# 进程与线程 对于操作系统说,一个任务就是一个进程。比如打开浏览器就是启动了一个浏览器进程,打开记事本就是启动了记事本进程。有些进程可以同时干很多事,比如 word,它可以同时进行打字、拼字检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个 “子任务”,我们把进程内的这些 “子任务” 称为线程(thread)。 每个进程至少要干一件事,所以,一个进程至少有一个线程。复杂的进程可以有多个线程,多个线程可以同时执行,多线程的执行方式和多进程是一样的。 多进程执行方式:操作系统轮流让各个任务交替执行,任务 1 执行 0.01 秒,切换到任务 2,任务 2 执行 0.01...
1.7k 2 分钟

# 对数器的概念和使用 有一个你想要测的方法 a 实现复杂度不好但是容易实现的方法 b 实现一个随机样本产生器 把方法 a 和方法 b 跑相同的随机样本,看看得到的结果是否一样。 如果有一个随机样本使得比对结果不一致,打印样本进行人工干预,改对方法 a 或者方法 b。 当样本数量很多时比对测试依然正确,可以确定方法 a 已经确定。 简而言之就是测试你的方法是否写对了 package src.main.java.day01;import java.util.Arrays;/** * @Author xun * @create 2022/6/26 18:11 */public class...
152 1 分钟

关于这个分类,这个分类是我之前博客的一些文章(一些,指两篇), 上回博客用的 wp 自己搭的,那个环境搭的我是真的累,没用宝塔。但是由于一些个原因,决定将这个博客直接弃了,不过好歹也是自己费那个劲搭的博客,就在这边为它留了个位置。域名啥的也没接着用了,新的博客重新买了一个域名用。这个分类下的内容单纯为留纪念。
22k 20 分钟

# Redis redis-cli ./redis-server 看你 redis 安装到哪的吧,这样启动的话是启动啊的默认配置。 ./redis-server redis.conf 你可以带上你的配置路径启动。 shutdown 关闭 redis 服务。 exit 退出连接。 # key 键操作 keys * 查看 redis 中的所有 key exists key 判断是否存在这个 key。 del key 删除这个 key 数据。 unlink key 根据 value 选择非阻塞删除,仅从 keys 从 keyspace 元数据中删除,真正的删除会在后续异步操作。 type...
1.7k 2 分钟

在这里记录一下自己记录的 Go 的一些常用的语法。Go 跟之前学过的 C,C++,Java 差别有点大。不太习惯。 # 包 每个 Go 程序都是由包构成的。程序从 main 包开始运行。按照约定,包名与导入路径的最后一个元素一致。一个包的名字和包的导入路径的最后一个字段相同,例如 gopl.io/ch2/tempconv 包的名字一般是 tempconv 。使用包直接使用 tempconv 加上一个 . 然后就可以选择包里的方法了。 # 导入 导入包有两种方法: 分组形式导入: import( "fmt"...
8.3k 8 分钟

# 泛型 # 什么是泛型 泛型我觉得跟 C++ 里的模板差不多,都是一种 “代码模板”,可以用一套代码套用各种类型。举个栗子: public class ArrayList<T> { private T[] array; private int size; public void add(T e) {...} public void remove(int index) {...} public T get(int index)...