适用场景树状数组是一种适用于多次单点修改统计区间和问题的数据结构。基本思想Binary Indexed Tree 求和的基本思想在于,给定需要求和的位置 i ,例如 13 ,我们可以利用其二进制表示法来进行分段(或者说分层)求和:13 = 2^3 + 2^2 + 2^0,则prefixSum(13) = RANGE(1, 8) + RANGE(9, 12) + RANGE(13, 13) (...
SnowKagura's Blog
愿世界温柔以待应用程序基本执行环境在这种执行环境下,操作系统与应用程序的界限并不明显,应用程序即是操作系统的组成部分,均在内核态下运行,一旦应用程序出错,便会导致整个操...
在这里,我们把有序数组定义为 nums,n 是该数组的长度。搜索某一元素的左边界int l = 0, r = nums.size(); // 找左边界 while (l < r) { int mid = l + (r - l >> 1); if (nums[mid] >= target) r = mid; else l = mid + 1; }...
从汇编语言的视角来看在函数调用的时候,需要有一条指令跳转到被调用函数的位置,这个看起来和其他控制结构没什么不同;但是在被调用函数返回的时候,我们却需要返回...
最近看了操作系统相关的知识,结合上《程序员的自我修养》这本书所讲的链接装载与库,感觉对于一个程序从编译,到汇编转换成机器码,再到多目标文件与库的链接,是一个非常复杂的过程。所以想要浅显易懂的总结一下,也刚好是找到了一个算是浅显易懂的总结,所以在自己的理解上再进行了一些润色。编译流程从源代码得到可执行文件的编译流程可被细化为多个阶段(虽然输入一条命令便可将它们全部完成):编译器 (Compil...