
问题
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
Input: 1->2->4, 1->3->4
Output: 1->1->2->3->4->4
示例
public class Program { public static void Main(string[] args) { var A = "this apple is sweet"; var B = "this apple is sour"; var res = UncommonFromSentences(A, B); ShowArray(res); Console.ReadKey(); } private static void ShowArray(IList<string> array) { foreach(var domain in array) { Console.Write($"{domain} "); } Console.WriteLine(); } private static string[] UncommonFromSentences(string A, string B) { string[] wordA = A.Split(' '); string[] wordB = B.Split(' '); var dicA = new Dictionary<string, int>(); var dicB = new Dictionary<string, int>(); var res = new List<string>(); foreach(var word in wordA) { if(dicA.ContainsKey(word)) { dicA[word]++; } else { dicA[word] = 1; } } foreach(var word in wordB) { if(dicB.ContainsKey(word)) { dicB[word]++; } else { dicB[word] = 1; } } foreach(var kvp in dicA) { if(kvp.Value == 1 && !dicB.ContainsKey(kvp.Key)) { res.Add(kvp.Key); } } foreach(var kvp in dicB) { if(kvp.Value == 1 && !dicA.ContainsKey(kvp.Key)) { res.Add(kvp.Key); } } return res.ToArray(); } }
以上给出1种算法实现,以下是这个案例的输出结果:
sweet sour
分析:
显而易见,以上算法的时间复杂度为: 。
本文由 .Net中文网 原创发布,欢迎大家踊跃转载。
转载请注明本文地址:https://www.byteflying.com/archives/3818。