![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
letcode刷题
程序喵阿呆
道济天下,智周万物
展开
-
力扣1206--跳表
挑战一下hard,果然难搞。原创 2024-06-18 11:33:37 · 292 阅读 · 0 评论 -
LeetCode[27]移除元素
#include<stdio.h>#include<stdbool.h>#include<string.h>bool isMatch(char * s, char * p){ if(s == NULL || p == NULL) return false; int i = 0; int j = 0; char c1,c2; int len = strlen(s); while(s[i] != '\0...原创 2024-01-04 11:04:50 · 441 阅读 · 1 评论 -
LeetCode[62] 不同路径
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。网格的左上角 (起始点在下图中标记为 “Start” )。问总共有多少条不同的路径?原创 2024-01-05 16:58:19 · 517 阅读 · 0 评论 -
LeetCode [23] 合并K个有序链表
前有合并两个有序链表,感觉比较简单,没有认为合并K个升序链表难,其实直观上算法都是比较简单:首先对比每一个链表头部元素,找出最小的,放在目标链表中,更新这个链表头,直到遍历所有链表。主要是一些细节处理上。原创 2023-08-01 11:29:17 · 220 阅读 · 0 评论 -
LeetCode [86] 分割链表
创建两个链表头,把以target为目标的分到两个链表中。自己想的,不知道读者是否能看懂,参考注释。原创 2023-07-27 14:50:45 · 103 阅读 · 0 评论 -
LeetCode[111] 二叉树的最小深度
类似二叉树的最大深度,最大深度是自顶向下一直遍历,直到找到最底部的节点。最小深度是遍历,找到最近的叶子节点即可。原创 2023-07-21 14:50:09 · 51 阅读 · 0 评论 -
LeetCode [110] 是否为平衡二叉树
简单题,也可以挺有意思,加深理解。原创 2023-07-21 10:57:29 · 37 阅读 · 0 评论 -
LeetCode [101] 对称二叉树
好久没有刷力扣了,看看之前刷过的题目,再做一遍有新感觉。原创 2023-07-20 13:56:53 · 54 阅读 · 0 评论 -
LeetCode [191] 位1的个数
知识点:位运算。原创 2023-01-05 14:48:29 · 68 阅读 · 0 评论 -
LeetCode [168] Excel表列名称
一个easy题有点意思,记录一下。原创 2023-01-05 10:59:26 · 68 阅读 · 0 评论 -
LeetCode [988] 从叶结点开始的最小字符串
其实不用把每一次都记下来,再循环比对,维护一个返回的string,遇到节点比对就好了。把所有的路径遍历一下,记录下来,然后比对string。原创 2022-07-22 15:26:48 · 161 阅读 · 0 评论 -
LeetCode [96] 不同的二叉搜索树
我是先刷了【95】不同的二叉搜索树(4个小时+才ac,我是不是废了),然而96题更简单,只需要不同二叉树的总个数就行,95需要把所有的二叉树都列出来。所以第一种做法就是把95的思路拿过来了。原创 2022-07-21 16:33:51 · 1257 阅读 · 0 评论 -
LeetCode 146 LRU算法-hash+双链表、unorder_map
第二种解法:利用unordered_map本身进行匹配,实验表明,unordered_map是头插法,并且没有rbegin()迭代器,使用end()达不到想要的效果,所以每次删除数据冷的结点,需要遍历整个hash表,到第17个case通过不了。第一种解法:hash+双向链表。原创 2022-01-08 23:33:43 · 247 阅读 · 0 评论 -
快排qsort
void swap(int a[], int i, int j){ if(i >= j) return; int tmp = a[i]; a[i] = a[j]; a[j] = tmp; return;}void qsort(int a[], int low, int high){ if(low >= high) return; int pos; int p = a[low]; int i = low; int .原创 2021-12-27 23:20:31 · 169 阅读 · 0 评论 -
leetcode-125.验证回文字符串
125. 验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true解释:"amanaplanacanalpanama" 是回文串示例 2:输入: "race a car"输出: false解释:"raceacar" 不是回文串提示:1 <= s.length <= 2 * 105原创 2021-10-15 11:15:42 · 110 阅读 · 0 评论 -
合并两个有序数组
合并两个有序数组第一种方法:暴力法,先合并,再排序,冒泡排序,简单粗暴void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){ int i = 0, j = 0; for(i = m, j = 0; i < m+n, j < n; i++, j++) nums1[i] = nums2[j]; int tmp; for(i = 0原创 2021-08-21 16:43:00 · 467 阅读 · 0 评论 -
leetcode--多数元素即众数
leetcode 多数元素题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入:[3,2,3]输出:3示例2:输入:[2,2,1,1,1,2,2]输出:2进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。第一种解法:go中的map,很简单func majorityElement(nums []i...原创 2021-08-18 18:03:42 · 129 阅读 · 0 评论 -
leetcode只出现一次的数字
只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4第一种解法:思考:首先不考虑说明部分,不考虑空间复杂度和时间复杂度,看到题目中有个限制,除了唯一元素外,其他元素都均出现两次,遍历整个数组,把出现两次的元素都标记0,最后再遍历一把数组。如果全部.原创 2021-08-16 21:15:52 · 171 阅读 · 0 评论 -
leetcode11-装水最多的容器-这题是不是过于简单
###解题思路执行用时:1308ms,在所有C提交中击败了17.99%的用户内存消耗:6.2MB,在所有C提交中击败了93.30%的用户看起来不能使用过多的循环,不然用时感人。。。这题是不是过于简单了,暴力法,遍历即可###代码intmaxArea(int*height,intheightSize){inti,j;intmax=0;intarea=0;for(i=0;i&l...原创 2020-08-14 15:36:36 · 117 阅读 · 0 评论 -
leetcode6-Z字型变换(超好理解--暴力法)
6. Z 字形变换将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例1...原创 2020-08-10 17:03:20 · 185 阅读 · 0 评论 -
leetcode4-求两个正序数组的中位数(二分查找法待补充)
#include<stdio.h>#include<malloc.h>double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size){ if(nums1Size + nums2Size == 0) return 0; if(nums1Size == 0) { if(nums2Size % 2 == 0) ...原创 2020-08-06 23:16:51 · 122 阅读 · 0 评论 -
leetcode8-字符串装整形(atoi)--注意越界
8. 字符串转换整数 (atoi)请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字..原创 2020-08-06 16:45:35 · 228 阅读 · 0 评论 -
力扣刷题指导-加油!!!
LeetCode刷题指南(一):https://blog.csdn.net/Lnho2015/article/details/50962989Leetcode题目分类指南(单独刷题或学习算法书籍配合使用)https://blog.csdn.net/locallucky/article/details/103553602?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_原创 2020-08-06 14:15:43 · 1967 阅读 · 0 评论 -
leetcode12-整形数字转罗马数字(疯狂使用goto)
12. 整数转罗马数字罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+...原创 2020-08-05 09:16:36 · 180 阅读 · 0 评论 -
leetcode9-回文数(简单0_0)
9. 回文数解题思路第一次首次提交就通过,没有错误和超时,yeah!!!首先把整形数每一位分离出来,存在一个数组中,从数组两端向中间挤进,判断是否相等。bool isPalindrome(int x){ if(x < 0) return false; if(x >= 0 && x < 10) return true; int a[20] = {0}; int len = 0; .原创 2020-08-04 20:54:01 · 92 阅读 · 0 评论 -
leetcode7-整数反转(简单0_0)
7. 整数反转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21解题思路主要思路:t = t*10 + x % 10;x = x /10;注意边界条件和反转之后越界问题int reverse(int x){ signed int t = 0; while (x / 10) { t ..原创 2020-08-04 20:36:39 · 98 阅读 · 0 评论 -
leetcode5-最长回文子串(断断续续调了几天)
5. 最长回文子串题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"解题思路:从字符串第一个字符开始遍历1.以这个字符为中心,(得到的是奇数个子串)2.以这个字符和这个字符下一个字符为中心,(得到的是偶数子串)3.向两边延伸,依次轮流判断是否为相同字符;碰到相同或者字符头或者尾停止,此.原创 2020-08-04 19:58:05 · 79 阅读 · 0 评论 -
leetcode5-最长回文字符串(超时通不过,难受~_~)
解题思路:固定从头开始的第一个字符串,一个从尾开始,分别遍历每一个字符,看是否与固定的字符组成最长回文字符串。超时超时啊,有点想不通啊!char * longestPalindrome(char * s){ int i,j; int start,len; int length = strlen(s); if(length < 2) return s; len = 0; for(i = 0; i < len.原创 2020-07-16 21:02:52 · 223 阅读 · 0 评论 -
变异题---求字符串中最长的头尾字符相同的子串(letcode5刷题失败程序)
题目:(做letcode第5题:最长回文字符串时,把回文字符串理解错了,写成了如下程序,记录一下)给定字符串s,求s的所有子串中,头尾字符相同长度最长的子串。解答:char * longestPalindrome(char * s){ int length = 0; int i,j,m; int len = 0; int flag = 0; int start; length = strlen(s); if(length &.原创 2020-07-15 16:07:32 · 495 阅读 · 0 评论 -
letcode3-无重复字符的最长子串(加油)
题目:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke"是一个子序列...原创 2020-07-14 19:06:00 · 70 阅读 · 0 评论 -
letcode2-两数之和(内存击败100%用户*_*)
/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*addTwoNumbers(structListNode*l1,structListNode*l2){intsum=0;inti=1;while(NULL...原创 2020-07-13 20:41:18 · 238 阅读 · 0 评论