242 有效的字母异位词
题目链接:. - 力扣(LeetCode)
主要思想:一看下面就懂
public bool IsAnagram(string s, string t)
{
Dictionary<char,int> dic=new Dictionary<char, int>();
if (s.Length!=t.Length)
{
return false;
}
for (int i = 0; i < s.Length; i++)
{
if (dic.ContainsKey(s[i]))
{
dic[s[i]]++;
}
else
{
dic.Add(s[i],1);
}
if (dic.ContainsKey(t[i]))
{
dic[t[i]]--;
}
else
{
dic.Add(t[i], -1);
}
}
foreach (var tmp in dic.Values)
{
if (tmp!=0)
{
return false;
}
}
return true;
}
349 两个数组的交集
题目链接:. - 力扣(LeetCode)
IntersectWith:修改当前的 HashSet<T> 对象,以使其仅包含该对象和指定集合中存在的元素。
这种操作是破坏性的,因为该方法会用一个 “新集合” 覆盖 “原始” HashSet<T> 对象的内容。
public static int[] Intersection(int[] nums1, int[] nums2)
{
if (nums1 == null || nums1.Length == 0 || nums2 == null || nums1.Length == 0)
return new int[0]; //注意数组条件
HashSet<int> one = Insert(nums1);
HashSet<int> two = Insert(nums2);
one.IntersectWith(two);
return one.ToArray();
}
public static HashSet<int> Insert(int[] nums)
{
HashSet<int> one = new HashSet<int>();
foreach (int num in nums)
{
one.Add(num);
}
return one;
}
1 两数之和
题目链接:. - 力扣(LeetCode)
public int[] TwoSum(int[] nums, int target)
{
Dictionary<int,int> dic=new Dictionary<int,int>();
for (int i = 0; i < nums.Length; i++)
{
int tmp = target - nums[i];
if (dic.ContainsKey(tmp) && dic[tmp] != i)
{
return new int[] { i, dic[tmp] };
}
if (!dic.ContainsKey(nums[i]))
{
dic.Add(nums[i],i);
}
}
return new int[] { 0, 0 };
}w int[] { 0, 0 };