add
This commit is contained in:
parent
05a05d3cec
commit
e9f2979324
45
5.leetcode/src/com/fanxb/common/Q1.java
Normal file
45
5.leetcode/src/com/fanxb/common/Q1.java
Normal file
@ -0,0 +1,45 @@
|
||||
package com.fanxb.common;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author fanxb
|
||||
* @date 2021年12月26日 22:02
|
||||
*/
|
||||
public class Q1 {
|
||||
public int[] twoSum(int[] nums, int target) {
|
||||
Map<Integer, Integer> numIndexMap = new HashMap<>(nums.length);
|
||||
for (int i = 0; i < nums.length; i++) {
|
||||
numIndexMap.put(nums[i], i);
|
||||
}
|
||||
int cur;
|
||||
Integer targetIndex;
|
||||
for (int i = 0; i < nums.length; i++) {
|
||||
cur = nums[i];
|
||||
targetIndex = numIndexMap.get(target - cur);
|
||||
if (targetIndex != null && targetIndex > i) {
|
||||
return new int[]{i, targetIndex};
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更优,一次循环即可
|
||||
*
|
||||
* @return int[]
|
||||
* @author fanxb
|
||||
* @date 2021/12/26 22:08
|
||||
*/
|
||||
public int[] betterTwoSum(int[] nums, int target) {
|
||||
Map<Integer, Integer> numIndexMap = new HashMap<>(nums.length);
|
||||
for (int i = 0; i < nums.length; i++) {
|
||||
if (numIndexMap.containsKey(target - nums[i])) {
|
||||
return new int[]{numIndexMap.get(target - nums[i]), i};
|
||||
}
|
||||
numIndexMap.put(nums[i], i);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
20
5.leetcode/src/com/fanxb/common/Q1078.java
Normal file
20
5.leetcode/src/com/fanxb/common/Q1078.java
Normal file
@ -0,0 +1,20 @@
|
||||
package com.fanxb.common;
|
||||
|
||||
import java.util.LinkedList;
|
||||
|
||||
/**
|
||||
* @author fanxb
|
||||
* @date 2021年12月26日 21:54
|
||||
*/
|
||||
public class Q1078 {
|
||||
public String[] findOcurrences(String text, String first, String second) {
|
||||
LinkedList<String> res = new LinkedList<>();
|
||||
String[] strs = text.split(" ");
|
||||
for (int i = 0; i < strs.length - 2; i++) {
|
||||
if (strs[i].equals(first) && strs[i + 1].equals(second)) {
|
||||
res.add(strs[i + 2]);
|
||||
}
|
||||
}
|
||||
return res.toArray(new String[0]);
|
||||
}
|
||||
}
|
@ -11,12 +11,68 @@ public class Q2 {
|
||||
int val;
|
||||
ListNode next;
|
||||
|
||||
public ListNode() {
|
||||
}
|
||||
|
||||
public ListNode(int val) {
|
||||
this.val = val;
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
public ListNode reverse(ListNode node) {
|
||||
ListNode last = null, cur = node, next = node.next;
|
||||
while (next != null) {
|
||||
cur.next = last;
|
||||
last = cur;
|
||||
cur = next;
|
||||
next = next.next;
|
||||
}
|
||||
cur.next = last;
|
||||
return cur;
|
||||
}
|
||||
|
||||
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
|
||||
l1 = reverse(l1);
|
||||
l2 = reverse(l2);
|
||||
ListNode res = new ListNode(0), last = null, cur = res, next;
|
||||
while (l1 != null || l2 != null) {
|
||||
int val = cur.val;
|
||||
if (l1 != null) {
|
||||
val += l1.val;
|
||||
l1 = l1.next;
|
||||
}
|
||||
if (l2 != null) {
|
||||
val += l2.val;
|
||||
l2 = l2.next;
|
||||
}
|
||||
if (val >= 10) {
|
||||
cur.val = val - 10;
|
||||
next = new ListNode(1);
|
||||
} else {
|
||||
cur.val = val;
|
||||
next = new ListNode(0);
|
||||
}
|
||||
last = cur;
|
||||
cur.next = next;
|
||||
cur = next;
|
||||
}
|
||||
if (last != null && cur.val == 0) {
|
||||
last.next = null;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
ListNode l1 = new ListNode(2);
|
||||
l1.next = new ListNode(4);
|
||||
l1.next.next = new ListNode(9);
|
||||
|
||||
ListNode l2 = new ListNode(5);
|
||||
l2.next = new ListNode(6);
|
||||
l2.next.next = new ListNode(4);
|
||||
l2.next.next.next = new ListNode(9);
|
||||
|
||||
new Q2().addTwoNumbers(l1, l2);
|
||||
// new Q2().addTwoNumbers(new ListNode(0), new ListNode(0));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user