Posts

Showing posts with the label List

Merge Two Sorted Lists

Image
Merge two sorted linked lists and return it as a  sorted  list. The list should be made by splicing together the nodes of the first two lists. Example 1: Input: l1 = [1,2,4], l2 = [1,3,4] Output: [1,1,2,3,4,4] Example 2: Input: l1 = [], l2 = [] Output: [] Example 3: Input: l1 = [], l2 = [0] Output: [0] Constraints: The number of nodes in both lists is in the range  [0, 50] . -100 <= Node.val <= 100 Both  l1  and  l2  are sorted in  non-decreasing  order. Solution: /**  * Definition for singly-linked list.  * 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 ListNode mergeTwoLists(ListNode l1, ListNode l2) {         ListNode temp = new ListNode();        

Group Anagrams

Given an array of strings, group anagrams together. Click this link to try it on Leetcode Example: Input: ["eat", "tea", "tan", "ate", "nat", "bat"] , Output: [ ["ate","eat","tea"], ["nat","tan"], ["bat"] ] Note: All inputs will be in lowercase. The order of your output does not matter. class Solution {     public List<List<String>> groupAnagrams(String[] strs) {   if (strs.length == 0) return new ArrayList();         Map<String, List> ans = new HashMap<String, List>();         for (String s : strs) {             char[] ca = s.toCharArray();             Arrays.sort(ca);             String key = String.valueOf(ca);             if (!ans.containsKey(key)) ans.put(key, new ArrayList());             ans.get(key).add(s);         }         return new ArrayList(ans.values());     } } Here string is to be stored