随笔分类 -  日常学习

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