Java资源分享网 - 专业的Java学习网站 学Java,上Java资源分享网
基于Java实现20道LeetCode题 PDF 下载
发布于:2024-08-22 11:14:05
(假如点击没反应,多刷新两次就OK!)

基于Java实现20道LeetCode题 PDF 下载 图1

 

 

资料内容:

 

1. 两数之和 (Two Sum)
解题思路
使用哈希表存储每个数字的索引,如果某个数字的补数存在于哈希表中,则返回对应的索引。
实现代码
 
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
int complement = target - nums[i];
if (map.containsKey(complement)) {
return new int[] { map.get(complement), i };
}
map.put(nums[i], i);
}
throw new IllegalArgumentException("No two sum solution");
}
}

 

2. 添加两数 (Add Two Numbers)
解题思路
使用链表表示两个数,从最低位开始逐位相加,注意处理进位。
实现代码
 
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode dummyHead = new ListNode(0);
ListNode p = l1, q = l2, current = dummyHead;
int carry = 0;
while (p != null || q != null) {
int x = (p != null) ? p.val : 0;
int y = (q != null) ? q.val : 0;
int sum = carry + x + y;
carry = sum / 10;
current.next = new ListNode(sum % 10);
current = current.next;
if (p != null) p = p.next;
if (q != null) q = q.next;
}
if (carry > 0) {
current.next = new ListNode(carry);
}
return dummyHead.next;
}
}