
leetcode算法题解(Java版)-6-链表,字符串
发布日期:2025-04-05 04:31:23
浏览次数:8
分类:精选文章
本文共 2418 字,大约阅读时间需要 8 分钟。
一、字符串处理
题目描述
将一个整数转换为罗马数字。输入数字保证在1到3999范围内。思路
根据罗马数字的规律,可以通过创建一个映射表来存储各个位置对应的罗马字符。然后将这个数分解为千位、百位、十位和个位,逐步构建结果字符串。注意处理特定情况,如4、9、40、90和400的特殊写法。代码
public class Solution { public String intToRoman(int num) { String[][] map = { {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"}, {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"}, {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"}, {"", "M", "MM", "MMM"} }; StringBuffer sb = new StringBuffer(); int thousand = num / 1000; int hundred = num / 100 % 10; int ten = num / 10 % 10; int one = num % 10; sb.append(map[3][thousand]); sb.append(map[2][hundred]); sb.append(map[1][ten]); sb.append(map[0][one]); return sb.toString(); }}
二、链表操作
题目描述
给定两个链表,分别表示两个非负数,将它们相加并返回结果链表。思路
链表的相加需要从右到左逐位相加,并处理进位。虽然链表题可能需要处理右侧到左侧的节点,但我们可以从头节点开始处理。创建一个新的头节点,逐步构建结果链表。注意节点的顺序和进位处理。代码
public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { if (l1 == null) { return l2; } if (l2 == null) { return l1; } ListNode head = new ListNode(0); ListNode p = head; int tem = 0; while (l1 != null || l2 != null || tem != 0) { if (l1 != null) { tem += l1.val; l1 = l1.next; } if (l2 != null) { tem += l2.val; l2 = l2.next; } p.next = new ListNode(tem % 10); p = p.next; tem /= 10; } return head.next; }}
三、最长无重复字符子串
题目描述
给定一个字符串,找到最长的没有重复字符的子串长度。思路
使用滑动窗口法,从左到右遍历字符串,维护一个窗口,同时记录字符的位置。遇到重复字符时,调整左窗口边界。最后返回最长窗口长度。代码
import java.util.HashMap;public class Solution { public int lengthOfLongestSubstring(String s) { HashMapmap = new HashMap<>(); int len = s.length(); if (len == 0) { return 0; } int maxLen = 0; int left = 0; for (int right = 0; right < len; right++) { char c = s.charAt(right); if (map.containsKey(c)) { left = Math.max(left, map.get(c) + 1); } map.put(c, right); maxLen = Math.max(maxLen, right - left + 1); } return maxLen; }}
通过这三个题目,我学会了如何处理不同数据结构的问题,并掌握了解决复杂问题的方法和技巧。这些问题让我变得更加熟练和自信,准备遇下更多挑战!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月16日 23时44分42秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
UE4 错误列表 error码(只记录我遇到的情况,持续添加,未完成)
2021-05-16
Android 架构组件 – 让天下没有难做的 App
2021-05-16
能解决数据可视化大屏需求的3款可视化工具
2021-05-16
第01问:MySQL 一次 insert 刷几次盘?
2021-05-16
laravel server error 服务器内部错误
2021-05-18
一道简单的访问越界、栈溢出pwn解题记录
2021-05-18
响应的HTTP协议格式+常见的响应码
2021-05-18
springboot redis key乱码
2021-05-19
解决打开 json 文件中文乱码的问题
2025-03-28
计算机网络基础:PKI(公钥基础设施)
2025-03-28
乒乓球问题
2025-03-28
回溯法介绍
2025-03-28
有了Trae,人人都是程序员的时代来了
2025-03-28
CentOS 系列:CentOS 7文件系统的组成
2025-03-28
Docker部署postgresql-11以及主从配置
2025-03-28