最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#算法之兩數(shù)之和

 更新時間:2022年01月14日 10:33:26   作者:癡者工良  
這篇文章介紹了C#算法之兩數(shù)之和,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

題目

給定一個整數(shù)數(shù)組 nums和一個目標(biāo)值 target,請你在該數(shù)組中找出和為目標(biāo)值的那 兩個 整數(shù),并返回他們的數(shù)組下標(biāo)。

你可以假設(shè)每種輸入只會對應(yīng)一個答案。但是,你不能重復(fù)利用這個數(shù)組中同樣的元素。

示例:

給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

提示:不能自身相加。

測試用例

[2,7,11,15]

9

預(yù)期結(jié)果

[0,1]

 格式模板

public class Solution {
    public int[] TwoSum(int[] nums, int target) {
    /*
    代碼
    */
        }
    }

筆者的代碼,僅供參考

使用暴力方法,運行時間 700ms-1100ms

public class Solution {
    public int[] TwoSum(int[] nums, int target) {
         int [] a = new int[2];
            for (int i = 0; i < nums.Length - 1; i++)
            {
                for (int j = i + 1; j < nums.Length; j++)
                {
                    if (nums[i] + nums[j] == target)
                    {
                        a[0] = i;
                        a[1] = j;
                    }
                }
            }
            return a;
        }
    }

運行時間 400ms-600ms

由于使用的是哈希表,所以缺點是鍵不能相同。

public class Solution {
    public int[] TwoSum(int[] nums, int target) {
                     int[] a = new int[2];
            System.Collections.Hashtable hashtable = new System.Collections.Hashtable();
            for(int i = 0; i < nums.Length; i++)
            {
                hashtable.Add(nums[i], i);
            }
            for(int i = 0; i < nums.Length; i++)
            {
                int complement = target - nums[i];
                if (hashtable.ContainsKey(complement) && int.Parse(hashtable[complement].ToString())!=i)
                {
                    a[0] = i;
                    a[1] = int.Parse(hashtable[complement].ToString());
                }
            }
            return a;
        }
    }

還是哈希表,缺點是哈希表存儲的類型是object,獲取值時需要進(jìn)行轉(zhuǎn)換。

        public int[] TwoSum(int[] nums, int target)
        {
            int[] a = new int[2];
            System.Collections.Hashtable h = new System.Collections.Hashtable();
            for (int i = 0; i < nums.Length; i++)
            {
                int c = target - nums[i];
                if (h.ContainsKey(c))
                {
                    a[0] = int.Parse(h[c].ToString()) <= nums[i] ? int.Parse(h[c].ToString()) : i;
                    a[1] = int.Parse(h[c].ToString()) > nums[i] ? int.Parse(h[c].ToString()) : i;
                }
                else if (!h.ContainsKey(nums[i]))
                {
                    h.Add(nums[i], i);
                }
            }
            return a;
        }

抄一下別人的

public class Solution
{
    public int[] TwoSum(int[] nums, int target)
    {
        int[] res = {0, 0};
        int len = nums.Length;
        Dictionary<int, int> dict = new Dictionary<int, int>();
        for (int i = 0; i < len; i++)
        {
            int query = target - nums[i];
            if (dict.ContainsKey(query))
            {
                int min = (i <= dict[query]) ? i : dict[query];
                int max = (i <= dict[query]) ? dict[query] : i;
                return new int[] { min, max };
            }
            else if (!dict.ContainsKey(nums[i]))
            {
                dict.Add(nums[i], i);
            }
        }

        return res;
    }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • WPF實現(xiàn)半圓形導(dǎo)航菜單

    WPF實現(xiàn)半圓形導(dǎo)航菜單

    這篇文章主要為大家詳細(xì)介紹了WPF實現(xiàn)半圓形導(dǎo)航菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 在C#中調(diào)用VBScript、javascript等腳本的實現(xiàn)代碼

    在C#中調(diào)用VBScript、javascript等腳本的實現(xiàn)代碼

    在C#中調(diào)用VBScript、javascript等腳本的實現(xiàn)步驟,需要的朋友可以參考下。
    2009-11-11
  • C#?迭代器分部類與索引器詳情

    C#?迭代器分部類與索引器詳情

    這篇文章主要介紹了C#迭代器分部類與索引器詳情,迭代器?迭代器解決的是集合訪問的問題,提供一種方法順序訪問一個集合對象中的各個元素,而不暴露對象內(nèi)部標(biāo)
    2022-07-07
  • c#的時間日期操作示例分享(c#獲取當(dāng)前日期)

    c#的時間日期操作示例分享(c#獲取當(dāng)前日期)

    這篇文章主要介紹了c#的時間日期操作示例,在給定時間戳返回指定的時間格式和獲取當(dāng)前時間方法,需要的朋友可以參考下
    2014-03-03
  • C#中LINQ多條件JOIN時為什么可以使用匿名類

    C#中LINQ多條件JOIN時為什么可以使用匿名類

    這篇文章主要給大家介紹了關(guān)于C#中LINQ多條件JOIN時為什么可以使用匿名類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧
    2018-09-09
  • c#實現(xiàn)sunday算法實例

    c#實現(xiàn)sunday算法實例

    Sunday算法思想跟BM算法很相似,在匹配失敗時關(guān)注的是文本串中參加匹配的最末位字符的下一位字符,下面是用C#實現(xiàn)sunday的實例代碼,有需要的朋友可以參考一下
    2013-08-08
  • 淺談c#開發(fā)者應(yīng)該了解的15個特性

    淺談c#開發(fā)者應(yīng)該了解的15個特性

    本文列舉了15個值得了解的C#特性,旨在讓.NET開發(fā)人員更好的使用C#語言進(jìn)行開發(fā)工作。
    2021-05-05
  • C#實現(xiàn)啟動,關(guān)閉與查找進(jìn)程的方法

    C#實現(xiàn)啟動,關(guān)閉與查找進(jìn)程的方法

    這篇文章主要介紹了C#實現(xiàn)啟動,關(guān)閉與查找進(jìn)程的方法,通過簡單實例形式分析了C#針對進(jìn)程的啟動,關(guān)閉與查找的相關(guān)實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • C#中常用的正則表達(dá)式實例

    C#中常用的正則表達(dá)式實例

    正則表達(dá)式在程序設(shè)計中有著重要的位置,它經(jīng)常被用于處理字符串信息,下面是C#中常用的正則表達(dá)式實例,感興趣的朋友一起看看吧
    2016-10-10
  • c# 9.0新特性——模塊初始化器

    c# 9.0新特性——模塊初始化器

    這篇文章主要介紹了c# 9.0新特性——模塊初始化器的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c#9.0,感興趣的朋友可以了解下
    2020-11-11

最新評論

西乡县| 德钦县| 类乌齐县| 卫辉市| 大新县| 腾冲县| 新密市| 乌鲁木齐县| 咸丰县| 阿图什市| 芦山县| 孟津县| 陆河县| 大安市| 根河市| 宜昌市| 伊春市| 会宁县| 莎车县| 石渠县| 通江县| 宁都县| 通渭县| 海安县| 沾益县| 浑源县| 邵武市| 叙永县| 天全县| 综艺| 农安县| 钦州市| 延寿县| 凌源市| 马关县| 宣武区| 景宁| 上饶市| 会同县| 志丹县| 茶陵县|