随笔分类 - 日常学习
偶尔也会不定时学习
摘要:冒泡排序、选择排序、插入排序、快速排序、归并排序 冒泡排序:双循环,外层循环用来遍历数组里的每一个数字;内层循环用来比较当前数字和后面一个数字的大小(如果大/小就交换位置)(来保证当前数字来到它应该在的位置) 选择排序:双循环,外层循环用来遍历数组里的每一个数字;内层循环用来找到当前数组最大值/最小
阅读全文
摘要:一、核心算法思想类 这类算法是解决问题的“策略逻辑”,决定如何思考、拆解问题,是编程解题的核心框架: 算法思想分类 包含的具体算法(及力扣标签) 核心特点 暴力枚举 枚举、模拟、脑筋急转弯 直接遍历所有可能,适合小规模/逻辑简单场景,效率低但思路直观 分治思想 分治、递归、回溯、深度优先搜索(DFS
阅读全文
摘要:一.计算系统概述 1.1* 计算机 1.2* 冯诺依曼模型 1.3* 计算机系统 1.4 七层抽象 1.5 从 计算->计算机->计算机系统->计算系统 二.数据的机器级表示 1.整数 1.1 无符号整数 8位的可以表示从0-255 1.2 有符号整数 1.2.1 原码表示:用开头的1表示符号,例如
阅读全文
摘要:一.复习重点 二.知识点 1.数据流图 2.流程图 3.数据流图转软件结构图(todo) 4.UML类图 string Java 中 String 是不可变对象(final 修饰类,char[] 存储字符,无修改方法,每次拼接会生成新对象 )。
阅读全文
摘要:一 曲面积分 1 第一类曲面积分(按顺序思考) 1.1 解题方法: a.利用对称性化简(轮换对称性也要考虑(x,y,z地位是否相等)) b.化为二重积分,代入S表达式(投影到某个平面) 球的投影(可以作为二级结论记一下) c.形如∫∫f(x)ds (函数里只与单一变量有关) S为XOY平面绕X轴旋转
阅读全文
摘要:简要介绍 1.1 目的:动态规划主要处理求最值的题型 1.2 核心问题:穷举,列出状态转移方程、判断算法问题是否具备【最优子结构】(通过子问题的最值得到原问题的最值)、是否存在【重叠子问题】(用暴力穷举的话效率会很低,可以使用【备忘录】和【DP table】来优化穷举问题) 2 如何写状态转移方程
阅读全文
摘要:什么是容器对象? list,map都是容器对象,提供了统一的接口
阅读全文
摘要:图的遍历 从一个顶点到其它顶点的遍历方法--图遍历(不访问已经访问过的顶点) dfs算法(递归遍历、回溯) 从顶点0开始,再对顶点0的相邻顶点进行dfs算法(可以维护一个标记数组,来标记某个顶点是否被访问过) dfs算法不是最短路径
阅读全文
摘要:1.二叉树的思维模式 1.1 是否可以通过遍历一遍二叉树得到答案?如果可以,用一个traverse函数配合外部变量来实现,<遍历的思维模式> 1.2 是否可以定义一个递归函数,通过子问题(子树)的答案推导出原问题的答案?如果可以,写出这个递归函数的定义,并充分利用这个函数的返回值,<分解问题的思维方
阅读全文
摘要:简单的输入和输出 冯诺依曼体系: 1.1 I/O控制器 查看I/O的控制状态,例如键盘的KBSR(keyboard status register) 1.2 I/O数据寄存器 一个字节8个位 1.3 异位 1.4 轮询 1.5 自陷机制 2.1 中断 2.1.1 同步和异步 2.1.2 中断与寄存器
阅读全文
摘要:三种二分搜索 框架: 技巧1:代码不要出现else 而是用 else if取代(便于体现多种情况) 技巧2:mid计算方法:right+(left-right)/2 技巧3:while循环条件,是left<=right,如果是小于,则会出现(left=2,right=2)(会漏掉某一个元素)无法继续
阅读全文
摘要:1 前缀和(第一行/第一行+第一列变成0) 1.1元素和 一维:利用数列的技巧:Sn-Sm=A_{m_1}+……+A_{n} 1.2 二维矩阵 任意一个矩阵之和可以转化成几个大矩阵(左上角都是0,0)的线性运算 前缀和(积)的使用条件: 1.原数组不变,如果原数组某一个值发生变化,那么presum的
阅读全文
摘要:1.滑动窗口(本质是数组快慢指针的一部分) 1.1 框架 int left = 0, right = 0; // 滑动窗口算法伪码框架 void slidingWindow(String s) { // 用合适的数据结构记录窗口中的数据,根据具体场景变通 // 比如说,我想记录窗口中元素出现的次数,
阅读全文
摘要:1 堆(本质是一个数组) 1.1 定义 堆必须是一个完全二叉树() 1.2 完全二叉树的性质 性质1:只允许最后一行不为满 性质2:最后一行必须从左往右排序且没有间隔 1.3 堆的分类(有堆序性) 大根堆:父节点元素大于子节点元素 小根堆:父节点元素小于子节点元素 1.4 堆的存储 编号:从上到下,
阅读全文
摘要:1.双指针链表() 1.1 合并两个有序链表 关键点:创建两个指针和一个虚拟头结点 (单链表问题一个虚拟头结点会很方便(指向的值无所谓) 1.2 单链表的分解 key:创建两个虚拟头结点,用来存放不同种类的数据(创造一个新链表的时候常用虚拟头结点) 1.3 合并k个有序链表 key:优先级队列(二叉
阅读全文
摘要:1.数据结构 1.1数据结构的存储方式 底层实现只有两种 数组和链表(arraylist等等本质都是链表或数组) 1.2数据结构的基本操作 增删查改(遍历+访问) 数组可以随机访问 ,快速找到对应元素,但是内存空间必须一次分配够 如果要扩容,删除 ,插入,因为要保证数据连续 所以时间复杂度为O(n)
阅读全文
摘要:把字符串的数字提取出来(多位) if (Character.isDigit(c)) { k = k * 10 + (c - '0'); } 这几行代码既处理了进位问题,又确定了每一位的具体数字
阅读全文
摘要:基本用法: 创建对象: Stack<> stack=new Stack<>(); 入栈: stack.push(); 出栈 stack.pop();这个有返回值,为栈顶元素 查看 stack.peek();查看但不移除 判断栈顶元素是否为空 stack.IsEmpty(); 获取栈的大小 stack
阅读全文
摘要:以下是使用LibGDX制作2D动作冒险类游戏的具体步骤和建议,分为开发准备、核心功能实现、优化与扩展三个阶段: 一、开发准备 环境配置 安装工具:确保已安装Java JDK(建议JDK 11+)、Android Studio(用于移动端调试)、IntelliJ IDEA或Eclipse(推荐Inte
阅读全文
摘要:1.低级语言 MIPS 32指令集体系 (1 可以在MIPS32机器上编写程序 (2 可以将高级汇编语言翻译到MIPS32机器上执行 1.1 结构化程序设计 选择结构 循环结构 示例1: x1000 0000是MEM里存数据的区域 初始化: 总结回顾: 示例2: 通过不断左移+是否是一个负数 去判断
阅读全文

浙公网安备 33010602011771号