From e534a5f9962751e91b6cdb4afbaeba9e56de5f4e Mon Sep 17 00:00:00 2001 From: Cool <747682928@qq.com> Date: Sun, 25 Aug 2024 01:45:56 +0800 Subject: [PATCH] =?UTF-8?q?2024/8/24=20LeetCode=20Hot100=20LinkedList?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A8.25=E7=9A=84=E6=AF=8F=E6=97=A5=E4=B8=80?= =?UTF-8?q?=E9=A2=98=EF=BC=88=E5=B0=9A=E6=9C=AA=E5=AE=8C=E6=88=90=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/hot100/linkedlist/Node.java | 20 +++++++ .../com/cool/hot100/linkedlist/Num138.java | 59 +++++++++++++++++++ .../LeetCode20240825.java | 16 +++++ 3 files changed, 95 insertions(+) create mode 100644 src/main/java/com/cool/hot100/linkedlist/Node.java create mode 100644 src/main/java/com/cool/hot100/linkedlist/Num138.java create mode 100644 src/main/java/com/cool/one_question_per_day/LeetCode20240825.java diff --git a/src/main/java/com/cool/hot100/linkedlist/Node.java b/src/main/java/com/cool/hot100/linkedlist/Node.java new file mode 100644 index 0000000..452fae1 --- /dev/null +++ b/src/main/java/com/cool/hot100/linkedlist/Node.java @@ -0,0 +1,20 @@ +package com.cool.hot100.linkedlist; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/08/24/23:22 + * @Description: + */ +public class Node { + int val; + Node next; + Node random; + + public Node(int val) { + this.val = val; + this.next = null; + this.random = null; + } +} diff --git a/src/main/java/com/cool/hot100/linkedlist/Num138.java b/src/main/java/com/cool/hot100/linkedlist/Num138.java new file mode 100644 index 0000000..9a0751f --- /dev/null +++ b/src/main/java/com/cool/hot100/linkedlist/Num138.java @@ -0,0 +1,59 @@ +package com.cool.hot100.linkedlist; + +import java.util.HashMap; +import java.util.Map; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/08/24/23:21 + * DayNumber 1 + * Hard 2 + */ +public class Num138 { + + Map cacheMap = new HashMap<>(); + + public Node copyRandomList(Node head) { + //ans1 +// head = copyNode(head); +// return head; + //ans2 + if(head==null){ + return null; + } + for (Node node=head;node!=null;node=node.next.next){ + Node newNode = new Node(node.val); + newNode.next=node.next; + node.next=newNode; + } + for (Node node=head;node!=null;node=node.next.next){ + Node newNode = node.next; + newNode.random= node.random==null?null:node.random.next; + } + Node newHead=head.next; + for(Node node=head;node!=null;node=node.next){ + Node newNode=node.next; + node.next=node.next.next; + newNode.next=newNode.next==null?null:newNode.next.next; + } + return newHead; + } + + private Node copyNode(Node node) { + if (node == null) { + return null; + } + if (cacheMap.containsKey(node)) { + node = cacheMap.get(node); + return node; + } + Node copyNode = new Node(node.val); + cacheMap.put(node, copyNode); + copyNode.next = copyNode(node.next); + copyNode.random = copyNode(node.random); + return copyNode; + } + +} diff --git a/src/main/java/com/cool/one_question_per_day/LeetCode20240825.java b/src/main/java/com/cool/one_question_per_day/LeetCode20240825.java new file mode 100644 index 0000000..d5d15b7 --- /dev/null +++ b/src/main/java/com/cool/one_question_per_day/LeetCode20240825.java @@ -0,0 +1,16 @@ +package com.cool.one_question_per_day; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/08/25/1:43 + * @Description: + */ +public class LeetCode20240825 { + + public int findPermutationDifference(String s, String t) { + + } + +}