自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 LeetCode.16.最接近的三数之和(中等)

如果直接使用三层循环遍历的话,多半是要超时的,所以还是选择使用双指针来做减少时间复杂度。 我们先对数组进行排序,然后定义一个超级大的数后面用于和我们的三数和比较,遍历数组,nums[i]作为第一个元素,nums[left],nums[right]作为第二三个元素,如果三数和减去target直接等于0了那我们直接返回target就可以了,让存储三数和的变量不断趋近于target(不要忘记使用绝对值) 最后我们把最接近target的用于存储三数和的变量返回。

2024-07-22 17:10:05 110

原创 LeetCode.12.整数转罗马数字(中等)

思路:对于这道题目,我们可以构建一个数字与罗马符号的映射表,然后从高位到低位进行转化,需要注意的是,在我们的映射表中,需要把4,9,40,90,400,900这几个特殊的数字及其符号加入,然后我们逐渐减小num的值,每次减去一个罗马符号对应的值,然后把这个罗马符号加入到最后我们返回的字符串中。

2024-07-21 19:07:34 146

原创 LeetCode.11.盛最多水的容器(中等)

给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和(i, height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器

2024-07-20 15:46:06 123

原创 LeetCode.8.字符串转换整数(中等)

请你来实现一个myAtoi(string s)函数,使其能将字符串转换成一个 32 位有符号整数。函数myAtoi(string s)的算法如下:空格:读入字符串并丢弃无用的前导空格(" ")符号:检查下一个字符(假设还未到字符末尾)为'-'还是'+'。如果两者都不存在,则假定结果为正。转换:通过跳过前置零来读取该整数,直到遇到非数字字符或到达字符串的结尾。如果没有读取数字,则结果为0。舍入:如果整数数超过 32 位有符号整数范围[−231, 231− 1],需要截断

2024-07-19 16:10:28 508

原创 leetCode.15.三数之和(中等)

给你一个整数数组nums,判断是否存在三元组[nums[i], nums[j], nums[k]]满足i != j、i != k且j != k,同时还满足nums[i] + nums[j] + nums[k] == 0。请你返回所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组

2024-07-18 19:51:56 263

原创 LeetCode.17.整数反转(中等)

给你一个 32 位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231, 231− 1],就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)

2024-07-17 19:52:14 394

原创 LeetCode.6.Z字形变换(中等)

将一个给定字符串s根据给定的行数numRows,以从上往下、从左到右进行Z 字形排列。比如输入字符串为"PAYPALISHIRING"行数为3时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);

2024-07-16 19:09:09 234

原创 LeetCode.3.无重复字符的最长字串(中等)

思路:对于这道题目,思路就是建立一个空的列表或者字典来存储子数组,遍历这个字符串数组,如果字符在列表或者字典中,我们就需要看怎么更新我们的起始下标,然后怎么更新我们的长度,我用的是字典,如果字符在字典中,start = max(start,char_index_map[char]+1),需要考虑一下当前的起始下标大还是字符在上次出现的位置+1大,我们取更大的那个当作我们的起始下标,然后比较当前的max_len和当前的末尾下标-起始下标+1哪个大,我们取大的那个。

2024-07-15 20:44:01 321

原创 LeetCode.13.罗马数字转整数(简单)

思路:这个题目一开始可能想的有点复杂了会想到比如中间有‘IM’这种顺序,但是这种是不规范的写法,也就是说如果前面一个字符比后面一个字符小,那情况只有六种:IV,IX,XL,XC,CD,CM。我们可以使用贪心算法,total当作我们的总值,从第一个字符开始往后找,如果一个字符比后一个字符小,我们就用total减去这一个字符对应的数,如果比后面的字符大或者相等我们就加上这个字符对应的数。

2024-07-13 20:08:15 228

原创 LeetCode.5.最长回文字串(中等)

思路:对于这道题目,我们首先考虑以下长度只有一的时候,直接返回就好了;如果长度>=2,我们可以依次增加长度,找到每个长度对应的回文子串,然后把最长的那个返回就好了;然后我们就把思路放在对于每个长度我们怎么判断他是不是回文序列,如果是的话,那他应该第一个和最后一个字符相同,比如我现在要求长度为三的回文序列,那我首先要判断的就是s[i]到s[i+2]的值是不是相等,如果相等我们判断s[i+1]到s[i+2-1]是不是回文就好了,判断结束后,我们可以确定这个长度为三的是不是回文序列

2024-07-12 20:00:13 201

原创 LeetCode.14.最长公共前缀(简单题)

思路:对于这道题,我用的就是最简单直接的思路了,先比较字符串数组种每一个字符串的第一个字符,然后比较第二个,第三个......同时需要注意几个情况:当字符串数组种只有一个字符的时候,我们直接返回这个字符就好了;我们还需要找到最短字符的长度,因为中间如果有字符串长度为1的话,我们很容易报错超出下标范围的,针对这个思路和算法,我写出了以下代码

2024-07-11 19:37:05 199

原创 LeetCode.70.爬楼梯(简单题)

思路:针对这一题呢,不妨先把前几种情况列出来找找规律,不难发现,其实对于这一道题就是斐波那契数列的一个应用,当n>=3的时候,有f(n-1)+f(n-2)种走法,比如n=5,那我可以走的方法是n=4的时候和n=3的时候的走法数量之和,分析完题目和应该用什么算法,由此思路我们可以得到我们的代码(我这里用的是python)

2024-07-10 18:38:47 212

原创 给出几个数字,全排列之后找第k大的数(python版)

list1 = itertools.permutations(lst)##将排序完的lst列表的每一个元素存入list1中,list1的类型不是列表,所以不能直接用。for i in list2[-k]:#要找第k大的,由于我们是从小到大排列,所以第k大的是从后往前数第k个,如果冒泡是从大到小排列就不要负号了。lst = list(map(int,input().split()))##把输入的要排序的数字放到列表里面。list2.append(i)##把排序后的组合数存入list2列表当中。

2023-09-14 10:34:02 196 1

原创 HZNU-OJ,贪吃蛇问题(C语言)

if(count==0 && time>=t){//把第一次的特殊情况拿出来,如果第一次操作的时间大于要找的时间,直接向右走就好了。}else if(count==0 && time

2023-09-08 15:43:13 74 1

原创 找两人相同空闲时间(hznu-花雕恋,C语言)

if(diyi[w]==dier[w]&&diyi[w]==1){//如果两个人都有时间,就可以让总时间加1。//从a1到b1的时间段都用1填充 ,表示这个时间段不空缺。//count记录总时间。dier[j]=1;

2023-09-08 15:33:23 100 1

原创 出圈问题(约瑟夫环)(C语言)

//结束这次循环之后,在最后的那个就是第m个,是要被淘汰的,后面由于i--,所以这个被淘汰的就不会再参与后续的筛选。for(i=n-1;i--){//每次循环结束会少一个人,最后i=0的时候留下来的就是那个人的编号。j++){//每m个一循环 ,m是规定的爆炸的数字(淘汰的数字)s[r]=s[r+1];//第一个放到最后面,后面依次往前进一。}//先给每一个人编号 从1~n。

2023-09-06 13:56:49 150 1

原创 倒杨辉三角(C语言版)

思路是先把正的杨辉三角描绘出来,按照要求排版,行从后往前输出。

2023-09-06 13:51:08 166 1

原创 (一步两步)走楼梯问题(C语言版)

n = 1 的时候,只有一种走法;n = 2的时候,有两种走法;//n==1,一种方法,n=2,两种,n>3累加

2023-09-06 13:44:10 653 1

原创 积木问题——四层积木块(C语言(朴实无华)版)

手动枚举,列举所有可能性,比较费时间但是个人感觉算是最不废脑子的一种方法了,代码很长,不喜勿喷

2023-09-04 12:56:05 141 1

原创 用Java实现判断一个无向图是否为哈密顿图

这个实现使用了递归的方式,在图中查找哈密顿路径(Hamiltonian Path)。其中`graph`是一个二维邻接矩阵,`visited`是一个标记数组,记录每个节点是否被访问过。函数`findHamiltonianPath`的参数`u`是当前处理的节点,`path`是已经走过的路径。在每次递归中,如果`path`中已经包含了所有的节点,则判断是否存在从最后一个节点到起点的路径,即判断矩阵中`graph[u][0]`是否为1。如果不是,则递归回溯,尝试其它的选择路径。

2023-05-25 07:59:20 66 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除