- 博客(89)
- 收藏
- 关注
原创 Python:缺失的第一个正数
发下我写的非常满意又有点投机取巧的一道题,写的比官方题解少行时间复杂度和内存也适中,问的是缺失的第一个正数,就说明可能存在负数和0,那么对应的字典counter就从1取起到len(nums)+1截止。[1, len(nums) + 1]是为了确保我们检查所有可能的正整数,包括数组中可能缺失的正整数,以及数组中包含所有正整数时的下一个正整数(空两个位检查),最多检查到len(nums)+1的位置~
2025-02-25 15:49:42
284
原创 Python:元组构造式和字典推导式
生成一个列表,其中包含所有满足 x 是偶数且 y 是奇数的元组 (x,y),其中 x 和 y 都在 0 到 4 之间。:打印列表数组M每个元素的的i[2](第3个元素)的新列表。对应的值,值不在字典中返回默认值0。:将列表中长度大于3的元素转大写。
2025-01-25 17:10:40
891
原创 Python:两数之和
几个星期前第一次刷力扣,用c,那得手搓哈希,直接一脸懵逼,然后自己学了一周多python,换了语言刷,顿时舒服多了~有人恋爱,有人看海,有人力扣第一题就做不出来(某梗)这里我用两种方法写第一题,一雪前耻~备注:枚举函数(多个参数的话,第二个参数表起始位置):一个可迭代对象,如列表、元组、字符串等。:枚举的起始索引,默认为0。【1】方法1:字典实现哈希。【2】方法2:列表切片。
2025-01-18 18:52:03
227
原创 Python:删除字符使得频率相同
【2】删除出现次数最少的字符后,剩余字符的频率相同:就是类似其他字母都出现2次这个字母出现1次,删除这个最小的就行。2.算法思想:这里我打算使用了特殊的哈希表Counter先统计所有元素的出现次数,然后将这些次数从小到大排序。【3】删除出现次数最多的字符后,剩余字符的频率相同:和2相反但是意思差不多。这表明从第二个元素开始的所有字符的出现次数都相同。:将切片后的列表转换为集合,集合中不包含重复元素。,说明集合中只有一个元素,即切片后的列表。的第二个元素开始到列表的末尾。如果删除一个字母后,
2025-01-17 01:32:07
431
原创 Python:有效字母异位词
【2】方法这里我用2种,一种内置的特殊哈希表,另外一种建立一个字母表abc_list然后正常ord统计个数,其中一个加进去一个减进去,最后再遍历字母表看看是不是减完了,减完了就是TRUE了~【1】方法1:使用API(Counter):这玩意直接统计字符串的字母出现次数弄成y键值对的那种元组。(大概是这样的东东)【1】什么叫字母异位词:字母出现频率相同。
2025-01-16 20:08:35
349
原创 Python计算只出现一次和多数元素
【2】169:计算多数元素,首先我们需要知道多数元素的定义(出现次数超过len(数组)//2的元素就是),这里使用两种方法,一个是常规法就是数学上的固定死的东西,另外一个方法我使用了摩尔投票法,所谓摩尔投票法就是首先初始化候选元素和计数器,遇到候选计数器+1,反之-1,计数器为0则更换候选元素,最后需要记得用定义验证是否是多数元素,时间复杂度比法1小就是了~【1】136:计算只出现一次的元素用位运算中的^运算符就行,没啥可说的~【3】多数元素法2:摩尔投票法。
2025-01-14 19:40:14
337
原创 Python:实现最小栈
要想实现O(1)就得避免遍历,那就借助辅助栈,就是定义两个栈,其中一个是用来正常栈操作,另外一个存前面一个栈的最小值,设定最小值就是栈2的栈顶元素就行~或者设定一个结点类,用min()也是O(1)的,换汤不换药,辅助栈的太多人写了,我这里写用一个结点类,然后使用min的写法~,一般情况下直接求的话时间复杂度是O(n)的,不考虑时间复杂度旧如下所示就行(因为遍历了整个栈一遍)内检索到最小元素的栈,也就是。主要难的地方就是要实现。
2025-01-14 17:27:49
470
原创 Python:实现括号匹配判断
1.实现:键盘输入一个带【、{、(这些括号的字符串,判断是否有与之匹配的括号,有返回true,反之返回false。2.思路:构建一个栈和存对应括号数只的字典进行匹配。
2025-01-11 15:07:44
206
原创 手把手教你删除抽象顽固的360文件夹
点击安全引导(最小)-确定-重新启动,然后你的电脑会变得有点诡异的蓝色,这个时候你是超神状态,你想删谁删谁,你进入那个X86的文件夹里面,把那360文件夹给删除,并再回收站里面清空。360安全卫士卸载完了还y魂不散,留了一个很大的文件夹叫360在C:\Program Files (x86)里面,里面一堆配置和其他文件,似乎等待我哪天不小心点到什么,然后它又复活,我刚开始想直接在系统或者卸载和删除地方删除他,他显示图二。真的和病毒一样,我又下了个unlocker,不知道是我版本不对还是怎么了,没有那个选项。
2025-01-06 17:01:32
1814
4
原创 C语言回文相关
2. 定义一个函数 `longestPalindrome`,用于遍历字符串中的每个字符,使用 `expandAroundCenter` 函数寻找以每个字符为中心的最长回文子串。3. 在 `longestPalindrome` 函数中,对每个字符分别考虑奇数长度和偶数长度的回文,比较并更新记录的最长回文子串长度。4. `main` 函数中读取输入字符串,并调用 `longestPalindrome` 函数计算最长回文子串的长度。5. 输出计算得到的最长回文子串的长度。
2024-12-31 01:40:30
317
原创 C语言:输入多组数组合并新数组(数组合并、去重、排序、固定格式输入输出)
【1】合并:这里把数组a弄大一点,然后插入b在数组后面。【3】排序:我的排序算法不太熟练,直接用固定的。【2】去重:去重是基本操作,没啥可说的。
2024-12-30 19:46:07
314
原创 数据结构部分题目(c语言版本)
2、先初始化(把pre和temp置空),然后使用一个循环,把pre和temp放到上面说的位置,然后让cur和pre换位置(cur->next=pre;1、设置三个结点,分别为pre、cur、temp。其中cur指向头节点处(cur=head),pre是cur的前面,temp是cur的后面。3.还在循环内,将pre、cur和temp均往后移动,直到循环结束即可~2.判断回文字符串:回文是正着反着都相等。
2024-12-29 06:27:08
574
原创 字符串存储、分割相关总结(strncpy 函数和strtok() 函数相关)
/使用 fgets 函数读取带空格的字符串。【3】gets(a);//使用 gets 函数读取带空格的字符串(尽量不要用,会发生缓冲区溢出)【4】getchar(a);//使用 getchar 函数逐字符读取字符串(不带空格)【1】scanf("%s",a);//使用 scanf 函数读取不带空格的字符串。//创建字符串,预留一个位置放'\0'【3】使用fputs函数输出字符串,不自动换行。【2】使用puts函数输出字符串,自动换行。
2024-12-28 17:22:27
591
原创 C语言实现汽水瓶
【1】对输入输出测试案例分析:样例2的解释别看,稍微有点干扰性,这里的数据3 10 81是空瓶n的个数,下面那个1是因为3/3==1,那个5是因为10可以分成9和1,9/3==3(这里喝了3瓶,又剩下3个空瓶),喝完的3个空瓶加上9和1的”1“=4,4/3=1余2,剩下2个空瓶可以借一个空瓶正好换1瓶,所以一共是3+1+1=5瓶。
2024-12-28 02:31:15
492
原创 C语言实现尼科彻斯定理
【2】啥叫尼科彻斯定理?一个正整数的立方都可以表示为该数个连续奇数之和。// 首项,y = x + 2 * (m - 1);// 尾项,固定的,记住首项就行。【1】怎么输出连续奇数:下面是输出m个连续奇数的代码。2.代码:完美不完美不知道,反正通过了~
2024-12-28 00:03:52
561
原创 DAY1牛客题库1-3算法题:C语言版本(思路仅供参考)
i>=0;i--){//判别是否属于单词//属于单词但是没标记过,进行标记if(!indexword表示indexword=0last=1;//标记过一次了,但是还有,last的长度加一else{last++;//遍历到的位置的元素不属于单词else{break;return 0;【2】算法思想:字符数组的输入输出都是一整套固定的,这里要解决的问题主要就是一个区分输入的是否是需要的单词的问题,因为存在输入会有空格的情况,所以我选择fgets()函数进行输入。
2024-12-25 03:58:56
377
原创 c语言:实现复读机的两种写法,字符数组的应用(手写代码版)
这里用了两种不同的方法,实现复读机(输入一个输出一个),一种方法是是比较常用的getchar()和putchar(),另外一种方法是fgets()和strchar(),前者类似读取,后者类似查找,具体笔记和算法思想如下:
2024-10-23 14:38:16
365
原创 c语言:整数的分解与提取and打印数根(手写代码版)
我这里用到的是取余和除相结合的思想(我个人的思路,仅供参考),如果输入一个数n,对n取余可以获取n的最低位数部分的数字,n/10则可以移出这位的数字,定义一个数组并使用循环重复上述步骤就可以很好的提取n的每位数。1.整数的分解与提取。
2024-10-19 16:24:03
250
原创 c语言:判断素数和完数对比总结(手写代码版)
2.完数:等于除了1和它本身之外的真因子之和,最小的完数为6。1.素数:不能被1和它本身之外的数整除,最小的素数是2。
2024-10-17 17:15:49
312
原创 数据结构一:绪论
【1】数据1.信息的载体,描述客观事物2.能被输入到计算机中3.能被计算机程序识别和处理的符号的集合。【2】数据元素1.数据的一个“个体”2.数据的基本单位3.有时候也被称为元素、结点、顶点、记录等,这时候用于完整描述一个对象。ex:一条学生记录【3】数据项1.组成数据元素具有特定意义不可分割的最小单位2.数据元素是数据项的集合3.比如说在学生信息表中的一条学生记录(数据元素)中这个学生的学号或者性别这些都是数据项【4】数据对象1.具有相同性质的数据元素的集合。
2024-09-15 01:16:22
839
原创 数据结构:单链表逆置的相关问题
1]什么叫头插法:新增节点在头节点后面(下图为单链表结构)2.缺点:有内存碎片(插入频繁的话头节点内存地址会频繁变动)1.思路:这里主要是用到头插法的思想进行单链表的一个逆置。2.逆置怎么操作(图解,个人理解仅供参考)3.跟图解写的代码,最近懒的开电脑💻。1.优点:快,不需要遍历整个链表。
2024-08-31 17:15:01
482
原创 C语言:成绩判定
1.题目:键盘输入一个成绩(0-100之间),能输出对应等级,90-100是A,80-89是B,70-79是C,60-69是D,60分以下均为E。2.算法思想:将100的分值分别分成5个档位,档位=(输入-50)/10。3.代码实现:(手写)
2024-08-31 16:35:13
549
原创 二阶微分方程相关常见问题
2.周期性与有界性取值范围:共轭复根情况下,阿法=0然后就是贝塔≠0,配合判别式<0。[3]可化为常系数的变系数(欧拉方程):类似换元,不常用懒得写例题了~1.求通解的常用几种方法。[2]常系数非齐次线性。[1]常系数齐次线性。
2024-08-09 16:44:35
698
原创 C语言:复读机2种写法(输入什么就输出什么)
(1)题目:输入什么内容,输出就是什么内容,遇到"#"为止。【2】不用getchar()和putchar()【1】getchar()和putchar()
2024-08-08 01:13:13
526
原创 VMware Workstation 与 Device/Credential Guard 的不兼容问题
在Windows操作系统上安装Docker时,如果选择了Hyper-V作为虚拟化平台,Windows会启用Hyper-V功能,这包括虚拟机监控程序和Windows Defender Device Guard。当这两个功能被启用时,它们会限制非Windows虚拟化平台(如VMware Workstation)的某些功能,因为这些功能可能无法在Device Guard和Credential Guard的安全环境中正常运行。是另一个安全功能,它使用虚拟化技术来保护Windows凭据,防止它们被恶意软件窃取。
2024-08-07 13:29:42
9904
3
原创 C语言实现冒泡排序
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
2024-07-18 18:14:40
982
原创 C语言复习(笔记加例题)第一章:数据类型及其运算
通常在其他编程语言中用作字符串的缩写,但在 C 语言中,字符串是通过字符数组char a[]来表示的。:以下哪个类型是 C 语言中用来存储布尔值的?:以下哪个类型是 C 语言中用来存储字符的?:以下哪个不是 C 语言中的基本数据类型?2. C 运算符的种类、运算优先级和结合性。3. 不同类型数据间的转换与运算。4. C 表达式的类型和求值规则。并不是一个基本数据类型。:A,在 C 语言中,
2024-07-17 18:38:35
1213
原创 C语言:温度转换
备注:32是华氏度的“零点”偏移值。在华氏度标度中,水的冰点(0°C)对应于32°F。因此,将摄氏度转换为华氏度时,需要将计算结果加上32。1.题目:实现摄氏度(Celsius)和华氏度(Fahrenheit)之间的转换。2.思路:(这是固定公式,其中 F 是华氏度,C 是摄氏度)输入一个华氏温度,输出摄氏温度,结果保留两位小数。
2024-07-17 10:57:50
3483
原创 项目记录:C语言学生成绩排名程序
之间接的代做,是一个很简单的小项目(帮他写实验报告带图那种,程序他说他预算有限就没买,中介扣了多少我就不知道了,反正我到手几十块吧)的学生作业。程序他没买,所以我应该可以发吧,也没啥可保密的,毕竟也比较简单,我简单介绍一下相关功能和代码之类的吧~本来题目不强制要求菜单的,我有点强迫症加了菜单,项目我已经上传了,需要的去我主页资源那边下载吧~
2024-07-09 12:03:02
1482
原创 10进制转2进制相关概念
上面已经求出25的8位2进制为00011001,直接按位取反再+1就行,就是0变1,1变0嘛~按位取反就是11100110嘛,再加1(8位2进制)就是。在补码系统中,正数和负数的表示是对称的,所以正25的补码就是它自身的二进制表示,而负25的补码就是它的反码加1。~也就是说-25的8位2进制是11100111,这就是 -25 在8位二进制补码表示法下的二进制形式。然后从下往上整理为11001,按照8位2进制的写法,25的2进制为00011001。(1)25除2=12,余1。(5)1除2=0,余1。
2024-07-08 15:40:19
319
IDEA环境下用Java输出5笔购物金额
2022-09-16
在IDEA环境下用java实现输出下一日期
2022-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人