给定一个整数数组 private void button1_Click(object sender, EventArgs e) { int[] nums ={ 2, 4, 6, 44, 22, 11, 55, 88, 9, 10 }; int target = 12; int[] arr = SoluSum(nums, target); } public int[] TwoSum(int[] nums, int target) { int[] arr = new int[2]; for (int i = 0; i < nums.Length; i++) { for (int j = i + 1; j < nums.Length; j++) { if (nums[i] + nums[j] == target) { arr = new int[] { i, j }; break; } } } return arr; } public int[] SoluSum(int[] nums, int target) { int[] arr = new int[2]; Dictionary<int, int> dic = new Dictionary<int, int>(); for (int i = 0; i < nums.Length; i++) { int k=target-nums[i]; if (dic.ContainsKey(k)) { int j = int.Parse(dic[k].ToString()); //获取dic的值 加上本次循环的次数 arr = new int[] { j, i }; break; } dic[nums[i]] = i; } return arr; } |
|