using System;
using System.Collections.Generic;
namespace Leet_Code
{
class Program
{
/*给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回[0, 1]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。*/
static void Main(string[] args)
{
int[] nums = new int[] { 2, 15, 11, 7 };
int [] ans = LeetCodeone(nums, 9);
foreach (var item in ans)
{
Console.WriteLine(item);
}
}
public static int [] LeetCodeone(int[] nums,int target)
{
Dictionary<int, int> map = new Dictionary<int, int>();
for (int i = 0; i < nums.Length; i++)
{
int dis = target - nums[i];
if (map.ContainsKey(dis) && map[dis]!=i)
{
return new int[] { map[dis],i};
}
if(!map.ContainsKey(nums[i]))
{
map.Add(nums[i], i);
}
}
return new int[] { 0, 0 };
}
//给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
public static int LengthOfLongestSubstring(string s)
{
int max = 0;
Queue<char> q = new Queue<char>();
foreach (char c in s)
{
while (q.Contains(c))
q.Dequeue();
q.Enqueue(c);
if (q.Count > max)
max = q.Count;
}
return max;
}
}
}