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

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

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

題目

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

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

示例:

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

因?yàn)?nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

提示:不能自身相加。

測(cè)試用例

[2,7,11,15]

9

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

[0,1]

 格式模板

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

筆者的代碼,僅供參考

使用暴力方法,運(yùn)行時(shí)間 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;
        }
    }

運(yùn)行時(shí)間 400ms-600ms

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

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;
        }
    }

還是哈希表,缺點(diǎn)是哈希表存儲(chǔ)的類型是object,獲取值時(shí)需要進(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;
    }
}

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

敦化市| 凤凰县| 获嘉县| 秀山| 石阡县| 紫金县| 炉霍县| 白沙| 合肥市| 侯马市| 沙湾县| 天峨县| 历史| 晋城| 五家渠市| 巴中市| 陆川县| 钟山县| 盐山县| 阿城市| 盘锦市| 纳雍县| 合川市| 江源县| 乐东| 衡南县| 景谷| 广东省| 新绛县| 武义县| 鞍山市| 临武县| 桃园县| 开平市| 邛崃市| 探索| 温州市| 安顺市| 陇川县| 晋宁县| 普兰县|