02 2023 档案
摘要:位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。 练习题:lc 191. 位1的个数 class Solution { // 开始给的无符号整数一定大于0,所以在while循环中n为true,每次取二进制n的末位,与1进行&运算,结果为1,说明该位为1,那么count++;n
阅读全文
摘要:一、概念 问题可以描述为:给定一组物品(有N 个物品和容量为W 的背包,每个物品都有自己的体积w 和价值v),在限定的总重量内,我们如何选择,才能使得物品的总价格最高。 常见的有01背包问题,即限定每种问题只能取0个或1个。 问:要使背包装的物品价值最大,应该怎么选,最大值是多少? 二、动态规划解法
阅读全文
摘要:一、概念 字典树(Trie)用于判断字符串是否存在或者是否具有某种字符串前缀。 包含三个单词 "sea","sells","she" 的 Trie 长这样: 为什么需要用字典树解决这类问题呢?假如我们有一个储存了近万个单词的字典,即使我们使用哈希,在其中搜索一个单词的实际开销也是非常大的,且无法轻易
阅读全文
摘要:一、在栈(Stack)上创建对象 Student是一个类,创建一个实例化对象: Student stu; 下面进行创建对象指针的操作(非必须): 上面代码中创建的对象 stu 在栈上分配内存,需要使用&获取它的地址: Student *pStu = &stu; pStu 是一个对象指针,它指向 St
阅读全文
摘要:什么是遍历: 所谓遍历(Traversal),是指沿着某条搜索路线,依次对树(或图)中每个节点均做一次访问。访问结点所做的操作依赖于具体的应用问题, 具体的访问操作可能是检查节点的值、更新节点的值等。 命名 根据访问结点操作发生位置命名: ① NLR:前序遍历(PreorderTraversal亦称
阅读全文
摘要:编程语言中,我们习惯将函数调用自身的过程称为递归,调用自身的函数称为递归函数,用递归方式解决问题的算法称为递归算法。 设计递归函数时,我们必须为它设置一个结束递归的“出口”,否则函数会一直调用自身(死循环),直至运行崩溃。接下来我们以“用递归方式求 n! ”为例,给大家展示一个正确的递归函数。 #i
阅读全文