diff --git a/0001_two_sum.java b/0001_two_sum.java new file mode 100644 index 0000000000000..4a5a214328768 --- /dev/null +++ b/0001_two_sum.java @@ -0,0 +1,13 @@ +class Solution { + public int[] twoSum(int[] nums, int target) { + for (int i = 0; i < nums.length; i++) { + for (int j = i + 1; j < nums.length; j++) { + if (nums[j] == target - nums[i]) { + return new int[] { i, j }; + } + } + } + + return null; + } +} diff --git a/0234_Palildrome_LL.java b/0234_Palildrome_LL.java new file mode 100644 index 0000000000000..c5df6f7d00b1a --- /dev/null +++ b/0234_Palildrome_LL.java @@ -0,0 +1,55 @@ + /* + * public class ListNode { + * int val; + * ListNode next; + * ListNode() {} + * ListNode(int val) { this.val = val; } + * ListNode(int val, ListNode next) { this.val = val; this.next = next; } + * } + */ +class Solution { + public boolean isPalindrome(ListNode head) { + if(head.next == null){ + return true; + } + + ListNode middleNode = getMiddleNode(head); + ListNode head1 = head; + ListNode head2 = middleNode.next; + middleNode.next = null; + head2 = reverseLinkedList(head2); + + while(head1!=null && head2!=null){ + if(head1.val != head2.val){ + return false; + } + head1 = head1.next; + head2 = head2.next; + } + + return true; + } + + public ListNode getMiddleNode(ListNode node){ + ListNode slow = node; + ListNode fast = node.next; + + while(fast!=null && fast.next!=null){ + slow = slow.next; + fast = fast.next.next; + } + + return slow; + } + + public ListNode reverseLinkedList(ListNode node){ + if(node==null || node.next == null){ + return node; + } + + ListNode newHead = reverseLinkedList(node.next); + node.next.next = node; + node.next = null; + return newHead; + } +} diff --git a/0238_Productofarray_except_self.java b/0238_Productofarray_except_self.java new file mode 100644 index 0000000000000..a5c8db761e7bd --- /dev/null +++ b/0238_Productofarray_except_self.java @@ -0,0 +1,32 @@ +class Solution { + public int[] productExceptSelf(int[] nums) { + int[] prefix = new int[nums.length]; + int[] suffix =new int[nums.length]; + + + prefix[0]=1; + for(int i = 1 ; i=0 ; i--){ + suffix[i]=suffix[i+1] * nums[i+1]; + + } + + + int[] ans = new int[nums.length]; + for(int i = 0 ; i