随笔分类 - 计算机基础
学习计算机的基础知识
摘要:1. 动态规划的题目可以从 回溯 推导得到。一般动态规划的题目 给定的数据个数很多,如果只用回溯会超时,此时可以通过数据存储已经计算的数据,即记忆化搜索。通过记忆化搜索,便于理解 dp表的简化 2. 对于0-1背包和完全背包,都可以简化二维dp表。以0-1背包举例,假设二维dp表的横坐标是tgt(其
阅读全文
摘要:1. 翻转数组的元素,之前我都是取中间值,然后ix< (right + 1 - left)/2, 这样考虑较繁琐。使用双指针,很简洁 void proc(int *arr, int left, int right) { for (int ix = left, jx = right; ix < jx;
阅读全文
摘要:1. 按照博主的划分,回溯问题分为:子集型、组合型、排列型。 2. 子集型的考虑方法分成:从过程分析,选或不选;从答案角度分析,选择哪个。如果有重复的元素,应该如何处理 3. 需要总结剪枝技巧, 2.1 排列型问题 这是计算排列个数的问题,从n个数中选n个数的排列个数,符号表示Ann,1-2-3 和
阅读全文
摘要:1. 自己在做算法题是,经常对一些边界值拿捏不定,需要进行整理。避免遇到类似的问题,每次都要在纸上画很长时间。目前还是通过举例进行理解吧 计算下标[ix, jx] 之间的元素个数是 jx -ix + 1, 举例[0, 1] [2, 2] 2. 在代码编写过程中,for() 和 while() 之后,
阅读全文
摘要:1. 堆: 堆(heap)是一种满足特定条件的完全二叉树小顶堆:任意节点的值 <= 其子节点的值大顶堆: 任意节点的值 >= 其子节点的值 堆作为完全二叉树的一个特例,具有以下特性。最底层节点靠左填充,其他层的节点都被填满。我们将二叉树的根节点称为“堆顶”,将底层最靠右的节点称为“堆底”。对于大顶堆
阅读全文
摘要:215. 数组中的第K个最大元素 class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: ans = [] for i in range(k): heapq.heappush(ans, nums[i]) fo
阅读全文
摘要:单链表的学习和总结 1.1 反转链表 1.1.1 记录leetcode 的题目 206. 反转链表 92. 反转链表 II 25. K 个一组翻转链表 2. 两数相加 添加新节点使用尾插法;编写代码时,把进位漏了。 445. 两数相加 II 添加新节点使用头插法;编写代码时,还是把进位 漏了 1.1
阅读全文
摘要:1. class 的使用和定义 #!/usr/bin/python3 class JustCounter: __secretCount = 0 # 私有变量 publicCount = 0 # 公开变量 def count(self): self.__secretCount += 1 self.pu
阅读全文
摘要:1. 在处理哈希表时,可以使用dict1={} ,比较方便 2. 了解 Counter >>> from collections import Counter >>> ans = [1, 2, 3, 1] >>> dic = Counter(ans) >>> dic Counter({1: 2, 2
阅读全文
摘要:1. 介绍几种常见的实时操作系统 RT-Thread RTOSRT-Thread RTOS是一款来自中国的开源实时操作系统,由RT-Thread工作室的专业开发人员开发、维护。诞生于 2006年 ThreadX Microsoft在2019年收购了ThreadX的所有者Express Logic,并
阅读全文
摘要:1.0 理解基本概念 父节点(parent node)左子节点(left child node)右子节点(right child node)左子树(left subtree)右子树(right subtree)根节点(root node):位于二叉树顶层的节点,没有父节点。叶子节点(leaf nod
阅读全文
摘要:在leetcode 如下题目中使用队列 637. 二叉树的层平均值: 103. 二叉树的锯齿形层序遍历 (如下代码记录 103 题目) class Solution: def zigzagLevelOrder(self, root: Optional[TreeNode]) -> List[List[
阅读全文
摘要:1. 记录 leetcode 题目 49. 字母异位词分组383. 赎金信 2. 使用字典分析字符串 #!/usr/bin/python3 input=input() #input='a:3,b:5,c:2@a:1,b:2,c:2' split = input.split('@') dict1={}
阅读全文
摘要:如下题单主要参考:https://leetcode.cn/circle/discuss/RvFUtj/ 一. 学习使用双指针 88. 合并两个有序数组 283. 移动零 977. 有序数组的平方 2414. 最长的字母序连续子字符串的长度 (2024-09-19 每日一题),不是标准的滑动窗口。和曾
阅读全文
摘要:1. 常用的寄存器 RIP 指令寄存器 用来存放即将执行的下一条指令地址 EAX 累加器 它是很多加法乘法指令的缺省寄存器
阅读全文
摘要:记录《深入理解计算机基础》相关的网站: https://csapp.cs.cmu.edu csapp 的官方网站https://csapp.cs.cmu.edu/public/code.html 下载代码的网站https://blog.csdn.net/weixin_43362650/article
阅读全文
摘要:详细介绍负数的文章: https://blog.csdn.net/daiyutage/article/details/8575248 1.以char类型举例,其取值范围是 -128 ~ 127,即-2E7 ~ 2E7-1, 用最高位表示其符号,0表示正数,1表示负数。数值以补码形式存储。正数的补码就
阅读全文

浙公网安备 33010602011771号