- 博客(92)
- 收藏
- 关注
原创 347 前k个高频元素
将堆中的元素取出,存入结果数组。由于堆顶是频率最小的元素,最终结果无需反转顺序(题目允许任意顺序。)统计每个元素的出现次数,时间复杂度为。
2025-03-26 21:03:49
347
原创 76 最小覆盖子串
处理空字符串或无效输入,直接返回空结果。:统计目标字符串t的字符需求,并为滑动窗口建立字符统计。tvalidt:用双指针维护窗口,右指针扩展窗口,左指针收缩窗口。:更新窗口字符计数,并检查是否满足t的需求。ttvalid:当valid等于need的字符种类数时,说明窗口已覆盖t。:收缩窗口左边界,尝试找到更小的覆盖子串。valid。
2025-03-25 20:57:23
393
原创 [动态规划 & 滑动窗口]
用双指针维护窗口,右指针扩展窗口,左指针收缩窗口。:处理金额为0或硬币数组为空的情况,直接返回结果。:遍历每个硬币面额,更新所有可能金额的最小硬币数。:处理空字符串或无效输入,直接返回空结果。:收缩窗口左边界,尝试找到更小的覆盖子串。:判断最终结果是否有效,返回最少硬币数或。的字符需求,并为滑动窗口建立字符统计。所需的最少硬币数,初始化为不可达值(:更新窗口字符计数,并检查是否满足。的字符种类数时,说明窗口已覆盖。,每个操作对应状态转移。:处理空字符串的边界情况。
2025-03-24 21:40:03
502
原创 25 - K 个一组翻转链表
将当前组与后续链表断开,翻转后重新连接。指针移动到当前组的末尾,处理下一组。:初始化哑节点和指针,构建循环结构。:翻转单个链表段,返回新头节点。简化边界处理,并利用。
2025-03-05 19:57:32
307
原创 性能&设计模式
由于底层使用了红黑树结构,每次插入元素时会自动对元素进行排序。你可以在遍历时按键值的顺序访问元素。哈希表不维护元素的顺序,元素的插入顺序和访问顺序没有特定规则,完全取决于哈希值的分布。末尾 O(1),其他 O(n)末尾 O(1),其他 O(n)O(1) 均摊,最坏 O(n)O(1) 均摊,最坏 O(n)O(1) 均摊,最坏 O(n)O(1) 均摊,最坏 O(n)O(1) 均摊,最坏 O(n)O(1) 均摊,最坏 O(n)高(每个元素有指针)
2024-09-26 18:50:39
704
原创 b-day1 C++ 基本语法
由于 a.k 和 a.u 共享内存,赋值给 a.k 会影响到 a.u.x,而不会影响 a.u.y 和 a.u.z。这表明 a.u.x 和 a.k 占用的是相同的内存位置,而 a.u.y 和 a.u.z 占用的是不同的内存位置。a.u.x 的值为 0,这是因为 a.k 被赋值 0,它覆盖了 a.u.x 所在的内存位置。a.u.y 和 a.u.z 的值依然为 5 和 6,这些值是之前赋的值。上半部分的菱形:打印一个顶部宽度逐渐增加的菱形。下半部分的菱形:打印一个底部宽度逐渐减小的菱形。
2024-08-06 17:42:16
189
原创 C++ 拾遗 2
在整个程序生命周期内都是有效的,在定义位置之后的任意函数中都能访问。全局变量在主程序退出时由系统收回内存空间。在函数或语句块使用在函数或语句块外部是不可用的。局部变量在函数返回或语句块结束时由系统收回内存空间。用static修饰的局部变量,并且只会被初始化一次。其,当定义它的函数或语句块结束时,其作用域随之结束。当程序想要使用全局变量的时候应该先考虑使用static考虑到数据安全性。全局变量和静态局部变量自动初始化为0。
2024-01-13 17:06:50
890
原创 C++ 单例模式
使用饿汉模式实现单例是十分简单的,并且有效避免了线程安全问题,因为将该单例对象定义为static变量,程序启动即将其构造完成了。
2024-01-13 17:01:38
671
原创 C++ 智能指针
⾸先,说⼀下为什么要使⽤智能指针:智能指针其作⽤是管理⼀个指针,避免咋们程序员申请的空间在函数结束时忘记释放,造成内存泄漏这种情况滴发⽣。然后使⽤智能指针可以很⼤程度上的避免这个问题,因为智能指针就是⼀个类,当超出了类的作⽤域是,,析构函数会⾃动释放资源。所以智能指针的作⽤原理就是在函数结束时⾃动释放内存空间,不需要⼿动释放内存空间。内存泄漏举例。
2024-01-13 16:02:25
1018
原创 操作系统 内存相关
页表是一种数据结构,用于存储虚拟地址空间和物理地址空间之间的映射关系。每个进程都有自己的页表,用于将其虚拟地址映射到物理地址。
2024-01-11 22:21:28
956
原创 操作系统 进程相关
—协程、线程、进程】 https://www.bilibili.com/video/BV1Wr4y1A7DS/?高并发:线程池,不要无休止的创建线程。--> task很小很快,thread需要切换(中断)-->协程。
2024-01-11 22:18:34
877
原创 Python
同列表和元组,都是一个可以放置任意数据类型的集合。Python 中的列表和元组都支持负数索引,-1 表示最后一个元素,-2 表示倒数第二个元素不同列表是动态的,长度大小不固定,可以随意地增加、删减或者改变元素(mutable)。而元组是静态的,长度大小固定,无法增加删减或者改变(immutable)。使用count(item) 表示统计列表 / 元组中 item。index(item) 表示返回列表 / 元组中 item。list.reverse() 和 list.sort() 分别表示。
2024-01-10 22:08:15
1023
原创 基础数据结构
删除:swap[heap[1], heap[size]], size--, down[1] 删除头元素很麻烦。删除任意元素:heap[k] = heap[size];down(k), up(k)修改元素:heap[k] = x;down(k), up(k)插入:heap[s++] = x, up(size)从 n/2 开始 down,复杂度为 O(n)down: 往下调整,求最小:heap[1]
2024-01-07 15:29:06
441
原创 C++ 拾遗
宏是在预处理阶段进行文本替换的,即在代码被编译之前。宏通常是简单的字符串替换,它将代码中的宏名称替换为宏定义的文本。宏的替换是简单的文本替换,不进行类型检查。这可能导致一些问题,因为宏不关心数据类型,可能引入潜在的错误。由于是文本替换,宏可能会生成较大的代码。每次使用宏时,都会复制宏的内容,可能导致代码膨胀。宏不涉及函数调用,因此不需要调用栈。宏只是简单地进行文本替换。inline。
2024-01-02 22:22:49
817
原创 Linux环境编程基础
系统调用是操作系统提供给用户程序的接口,用于访问操作系统的核心功能和资源。通过系统调用,用户程序可以请求执行特权操作,如文件操作、进程控制、内存管理、网络通信等。它是用户程序与操作系统内核之间的通信方式,允许应用程序利用操作系统提供的服务完成各种任务。
2023-12-31 20:41:47
913
原创 二叉树 经典例题
h层,则最底层最右边元素是2^{h-1}最左边是2^{h}-1。后序最后一个节点是根节点-->确定左子树和右子树。任意节点左右子树高度差
2023-12-31 16:27:26
564
原创 动态规划 典型例题
以下标 i 的元素结尾的最长递增子序列的长度。可以不连续,所以else后面有差异。行号从 1 开始,列从 0 开始。大体和上一题类似,操作有三种。第一个维度删掉,第二个反过来。
2023-12-31 13:35:58
938
原创 图论 经典例题
对有向图的节点排序,使得对于每一条有向边 U-->V U都出现在V之前。建立映射 [0, a, b] 其中 0 代表人名,a 代表邮箱地址。先连通,看连通块的数量,连接 n 个块需要 n - 1 个边。找到不能进入环的点,跟它在不在环里面没关系。从出度为 0 的点出发,它们不可能在环中。构建并查集的操作基本都是一样的。1.查询根节点 + 路径压缩。并查集 + 求连通块的数量。根据父节点的特点找冗余路径。变体,需要维护连通块的数量。依次删去度数为 1 的点。题眼一般是多个集合的合并。
2023-12-27 21:23:14
1098
原创 回溯算法 典型习题
枚举各种可能的情况。0.直接枚举子集1.约束条件是子集中数字的和 392.约束条件是子集的大小 77 46 473.约束条件是1 2两者的结合 21614.约束条件是集合数 + sum 93 6985.去重:同层删去相同的递归起点6.约束条件是 子集中数的大小关系 4917.前一个情况可能是后一个情况的约束 51。
2023-12-23 22:53:01
419
原创 Minizinc 代码大全
问题1:如何编写逻辑表达式?优化建模之MiniZinc(四) 复杂逻辑约束和调度问题实例 - 知乎 (zhihu.com)var 1..8:a;var 1..8:b;var 1..8:c;var 1..8:d;var 1..8:e;var 1..8:f;var 1..8:g;var 1..8:h;constraint (a-b)>=2 \/ (b-a)>=2;constraint (a-c)>=2 \/ (c-a)>=2;constra
2022-03-09 11:30:17
1171
1
原创 [5197——概率趣题:25人每次kill一个谁的存活概率最高]
一共有25个人,每个人都有编号,每一回合杀死一个奇数编号的人,它之后的人的编号-1,问1.谁的存活时间最长?设 F[n, k] 为 n 人开局,第 k 位苟活到最后的概率。F[1, 1] = 1, 现在考虑 F[n, k]可以分为三个部分求解:1) k被杀该情况发生概率 = (k%2) // ((n+1)//2)期望轮数 = 12) k 之前的人被杀该人被杀的概率 = k之前的奇数/所有奇数的数目 = (k//2)/( (n+1)//2 )此人被杀后,期望轮数在原有的基础
2022-03-08 20:10:42
420
原创 Stanford 编程范式 lesson 4
【斯坦福大学公开课】编程范式_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV11441137jY?p=4&spm_id_from=pageDriver如何在不care变量类型的情况下实现swap函数一、swap 交换变量的值1.使用指针作为参数交换两个 int// 将字符串复制到数组 dest 中#include <stdio.h>#include <string.h>#include <stdlib.h
2021-12-08 17:31:25
448
原创 [算法与程序设计] 1003
Problemhttp://47.99.179.148/problem.php?id=1003#include <iostream>#include <algorithm>using namespace std; int main(){ int n; cin >> n; while(n--){// 有n行输入 int m;// 依次输入m个数 cin >> m; int input[m]; for(int i
2021-12-04 21:04:06
517
原创 [算法与程序设计] 介绍 + 1002
这个是我们老师自己搭建的一个OJ,没有解答,全是习题。之前听一个B站的UP主说,学编程,在掌握了基本的语法后,可以通过完成算法题来训练自己,从而进一步提升自己对编程语言掌握的熟练度。所以,趁完成作业的机会,利用OJ来训练自己是一个不错的选择。题目点击连接可一键直达:Problemhttp://47.99.179.148/problem.php?id=1002#include <iostream>using namespace std;void swap(int *a,
2021-12-04 20:13:10
369
原创 Java-Ch 11:集合
1.集合框架概述/*** 一、集合框架的概述** 1.集合、数组都是对多个数据进行存储操作的结构,简称Java容器。* 说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)** 2.1 数组在存储多个数据方面的特点:* > 一旦初始化以后,其长度就确定了。* > 数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。* 比如:String[] a...
2021-09-10 08:37:43
231
原创 Java-Ch 10: 枚举类、注解
1 定义和适用范围/*** 一、枚举类的使用* 1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类* 2.当需要定义一组常量时,强烈建议使用枚举类——属性亦为常量* 3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。** 二、如何定义枚举类* 方式一:jdk5.0之前,自定义枚举类* 方式二:jdk5.0,可以使用enum关键字定义枚举类*** @author shkstart* @create 2019 上午 10:17...
2021-09-02 15:38:34
172
原创 Java-Ch 9: 比较器Comparable接口
1 两种排序/** * 一、说明:Java中的对象,正常情况下,只能进行比较:== 或 != 。不能使用 > 或 < 的 * 但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小。 * 如何实现?使用两个接口中的任何一个:Comparable 或 Comparator * * 二、Comparable接口与Comparator的使用的对比: * Comparable接口的方式一旦一定,保证Comparable
2021-08-30 22:55:36
220
原创 Java-Ch 9: 常用类(日期时间API,东西多用的时候再查)
1 java.util.Date类 |---java.sql.Date类package com.lee.java;import org.junit.Test;import java.util.Date;/** * @author Lee * @create 2021-08-25 10:15 */public class DateTimeTest { /* java.util.Date类 ...
2021-08-27 21:27:38
404
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人