public static int[] Intersect(int[] nums1, int[] nums2) { BinarySearchTreeDictionary <int, int> dictionary = new BinarySearchTreeDictionary <int, int>(); foreach (var num in nums1) { if (!dictionary.Contains(num)) { dictionary.Add(num, 1); } else { dictionary.Set(num, dictionary.Get(num) + 1); } } List <int> list = new List <int>(); foreach (var num in nums2) { if (dictionary.Contains(num)) { list.Add(num); dictionary.Set(num, dictionary.Get(num) - 1); if (dictionary.Get(num) == 0) { dictionary.Remove(num); } } } return(list.ToArray()); }
/// <summary> /// /// </summary> public static void TestDictionary() { LinkedListDictionary <string, int> dic = new LinkedListDictionary <string, int>(); dic.Add("ss", 12); dic.Add("rng", 58); dic.Remove("ss"); BinarySearchTreeDictionary <string, int> dictionary = new BinarySearchTreeDictionary <string, int>(); dictionary.Add("edg", 156); dictionary.Add("vg", 456); dictionary.Set("vg", 789); dictionary.Remove("edg"); }
public void TestDictionaryTreeSerialization( IEnumerable <BinarySearchTreeTask.ComparableKeyValuePair <string, BinarySearchTreeKeyValuePairs <string, string[]> > > collection, IComparer <BinarySearchTreeTask.ComparableKeyValuePair <string, BinarySearchTreeKeyValuePairs <string, string[]> > > comparer) { BinarySearchTreeDictionary expected = new BinarySearchTreeDictionary(collection, comparer); XmlSerializer serializer = new XmlSerializer(typeof(BinarySearchTreeDictionary)); using (FileStream stream = File.Create("SerializedDictionary.xml")) { serializer.Serialize(stream, expected); } BinarySearchTreeDictionary actual; using (FileStream stream = File.OpenRead("SerializedDictionary.xml")) { actual = (BinarySearchTreeDictionary)serializer.Deserialize(stream); } Assert.AreEqual(expected, actual); }