摘要: 二分查找整体思路 我们可以求出 使得每个袋子的球的数目大于等于mid 的操作次数opt 如果opt>maxOperations 那么说明分得多了,那就要增大mid 如果opt<maxOperations 那么说明分的少了,那就要减小mid 如果opt==maxOperations 其实就是所求答案, 阅读全文
posted @ 2022-12-20 14:03 virgil_devil 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 递归 递归很简单,遍历整棵树即可,代码复杂度为O(n) 点击查看代码 func countNodes(root *TreeNode) int { if root == nil { return 0 } return 1+countNodes(root.Left)+countNodes(root.Ri 阅读全文
posted @ 2022-12-16 18:58 virgil_devil 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 常见排序算法 编写代码并测试了5种排序算法 有冒泡排序,选择排序,插入排序,堆排序,归并排序. 下面也给出了代码在机器上的运行结果,虽然不同机器结果会不一样,但是仍然能够比较直观地感受到这些算法的区别,以及理论与实现之间的差距. 阅读全文
posted @ 2020-03-18 22:44 virgil_devil 阅读(166) 评论(0) 推荐(0) 编辑
摘要: C语言数值存储溢出探讨 真数与码 真数可以等同于我们数学上的整数,包括正整数,0和负整数。 码是什么呢? 码就是为了存储真数而产生的。 计算机的存储空间不是无穷无尽的,如果未来能实现用一个无穷的二进制位来存储一个数,那么码就没有存在的必要了。 码给各个二进制位设定了一套规则,以达到使用这些二进制位来 阅读全文
posted @ 2020-03-06 21:51 virgil_devil 阅读(641) 评论(0) 推荐(0) 编辑
摘要: 从计算理解数组 公式法(基础) 数组是我们C语言中最常用的数据结构之一,我们必须熟练掌握. 数组名就是这整个数组的首地址,这里我们记为a, 我们常常苦恼 a+1,&a+1,a[0]+1究竟指向的是哪个元素. 我曾试图写出所有数组的首地址通项转换公式,但发现写出来的意义不大,不容易记,只是摆着好看,而 阅读全文
posted @ 2020-03-04 16:25 virgil_devil 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 进程之fork 父子进程的不同点 子进程和父进程相同点多于不同点,一般来说我们记住不同点会更加省事 这里只列出了部分不同点 fork返回值不同 进程ID不同 父进程ID不同 子进程不继承父进程的文件锁 子进程未处理的闹钟被清除 子进程未处理信号集设置为空集 父子进程的拷贝现象 子进程与父进程环境几乎 阅读全文
posted @ 2020-03-02 18:06 virgil_devil 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 更快地进行进制转换 本文主要针对二进制,八进制,十进制,十六进制中的一些转换提供一些技巧和思路,以加快进制转换的手算及心算速度. 十进制转换成其他进制 这里我举一个37.625(十进制)转换为二进制的例子来说明计算方法 分成两个步骤 步骤1 打表,以1为基础,向左不断乘以2,向右不断除以2 得出32 阅读全文
posted @ 2020-02-26 18:21 virgil_devil 阅读(567) 评论(0) 推荐(0) 编辑
摘要: 字节序问题 常用术语 网络字节序:network byte order 主机/本地字节序:host byte order 大端字节序:big endian 小端字节序:small endian 什么是大端/小端字节序呢? 先理解什么是高位什么低位. 假设一个变量a = 0xdeadbeef,那么如果 阅读全文
posted @ 2020-02-11 09:43 virgil_devil 阅读(382) 评论(0) 推荐(1) 编辑
摘要: 剑指OFFER 平衡二叉树 分析 先理解什么是平衡二叉树 它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 下面的代码我只判断了根节点左右孩子的深度(没有再递归判断其子树的),但是也一样过了. 代码 阅读全文
posted @ 2020-02-06 19:00 virgil_devil 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 剑指OFFER 二叉搜索树的第k个结点 分析 先中序遍历一遍,保存下结果,然后取第k小个结点即可 代码 阅读全文
posted @ 2020-02-06 18:29 virgil_devil 阅读(95) 评论(0) 推荐(0) 编辑