
算法练习
文章平均质量分 86
这里记录了我做过的一些算法题,方便自己查看,也希望对大家有帮助
忙碌的头发丝
这个作者很懒,什么都没留下…
展开
-
LeetCode算法题Day4
给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。先遍历一下链表看有几个结点,然后再遍历一遍进行删除。原创 2025-04-02 21:04:03 · 225 阅读 · 0 评论 -
LeetCode算法题Day2
直接将数字1,4,5,9,10,40,50,90,100,400,500,900,1000和对应的罗马数字放到两个数组里通过下标一一映射,循环上述数字的数组,每读取一个数就将待转化的数字中的该数减尽并拼接对应的罗马数字。因为存在4、9类似的数字的特殊情况,所以可以采用当读到某一个字符时,如果该字符表示的数小于该字符后面的字符表示的数,则减去该字符对应的数。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。通常情况下,罗马数字中小的数字在大的数字的右边。原创 2025-03-20 21:12:41 · 721 阅读 · 0 评论 -
LeetCode算法题Day3
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。可以想象成n个指针,先定义一个i当作访问每个字符串同一字符的指针,一直循环,先假设第一个字符串最短,先当作循环结束的条件。遍历字符串数组,比较所有字符串下标为i的字符是否相同,如果字符不同或有字符串的长度小于i则返回结果,如果不是则将这个字符拼接到结果res上,然后一直移动i。原创 2025-04-01 20:32:07 · 926 阅读 · 0 评论 -
LeetCode算法题Day1
开一个unordered_map<char,int>用来记录某一个字符出现了几次,maxLength用来记录最长的串,使用双指针算法i和j都从头出发,i先不动当j向后读入一个字符c如果map[c]==0证明字符c在i到j的串中初次出现,则map[c]++并且j向后移动,当map[c]>=1时证明i到j之间的串中已经包含c则需要判断是否需要更新maxLength并且i向后移动同时i读入的字符c'进行map[c']--直到map[c]==0停止,此时重复i不动j向后移动。的链表,表示两个非负的整数。原创 2025-03-19 20:56:07 · 538 阅读 · 0 评论