Leecode数据结构刷题记录第二天:1. 两数之和

①:两次遍历 时间复杂度为O(n平方)
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[i] + nums[j] == target) { return new int[]{i, j}; } } } return new int[0]; }
②:哈希表(仅遍历一次)时间复杂度O(n)
public int[] TwoSum(int[] nums, int target) { Dictionary<int, int> a = new Dictionary<int, int>(); for (int i = 0; i < nums.Length; i++) { int complement = target - nums[i]; if (a.ContainsKey(complement)) { return new int[] { i, a[complement] }; } if (!a.ContainsKey(nums[i])) { a.Add(nums[i], i); } } return new int[] { 0, 0 }; }
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号