1. Two Sum:關于引用和hash table的思考

問題描述:
Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

c++解決:

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        vector<int> a(2);
        for(int i=0;i<nums.size();i++)
            for(int j=i+1;j<nums.size();j++)
                if(nums[i]+nums[j]==target)
                {
                    a[0]=i;
                    a[1]=j;
                    return a;
                }
        return a;       
    }
}; 

時間復雜度 O(n^2)

  1. c++引用的作用梅割?
    答:c中有傳值和傳址兩種方式坐桩。傳值方式,函數(shù)調用過程中生成一個臨時變量的形參微酬,把實參的值傳遞給形參,實參的值在過程中不會被改變。而傳址方式會可以改變實參的值。因為指針不安全棒妨,c++中引入了“引用”這一概念。
    引用就是給對象起了個別名含长,編譯器不會為對象開辟新的內(nèi)存空間,原變量和引用公用一塊內(nèi)存空間伏穆。
  2. 引用和指針的區(qū)別
    引用必須初始化拘泞,沒有空引用,只有空指針枕扫。
    int**
    int&&右值引用
  3. 什么是左值陪腌,什么是右值?
    左值:有地址空間,可被引用的數(shù)據(jù)對象诗鸭∪敬兀可以取地址。
int s=10;
int &n=s;

右值:只有臨時地址强岸。不可以取地址锻弓。

int &&n=10;

a++是先取出持久對象a的一份拷貝,再使持久對象a的值加1蝌箍,最后返回那份拷貝青灼,而那份拷貝是臨時對象(不可以對其取地址),故其是右值妓盲;
++a則是使持久對象a的值加1杂拨,并返回那個持久對象a本身(可以對其取地址),故其是左值悯衬;

java解決方案:

//時間復雜度O(N),空間復雜度O(n)
public int[] twoSum(int[] nums, int target) {
    Map<Integer, Integer> map = new HashMap<>();
    for (int i = 0; i < nums.length; i++) {
        int complement = target - nums[i];
        if (map.containsKey(complement)) {
            return new int[] { map.get(complement), i };
        }
        map.put(nums[i], i);
    }
    throw new IllegalArgumentException("No two sum solution");
}

java中的內(nèi)存機制弹沽。
1.棧內(nèi)存和堆內(nèi)存
棧:存放局部變量。
堆:儲存程序員申請的內(nèi)存空間筋粗。也就是new出來的空間贷币。
2.關于HashMap的時間復雜度O(1)的思考
最理想情況西hashmao時間復雜度為O(1),如果太差時間復雜度為O(n).

常用數(shù)據(jù)結構的時間復雜度

Data Structure Add Find Delete GetByIndex
Array (T[]) O(n) O(n) O(n) O(1)
Linked list (LinkedList<T>) O(1) O(n) O(n) O(n)
Resizable array list (List<T>) O(1) O(n) O(n) O(1)
Stack (Stack<T>) O(1) - O(1) -
Queue (Queue<T>) O(1) - O(1) -
Hash table (Dictionary<K,T>) O(1) O(1) O(1) -
Tree-based dictionary(SortedDictionary<K,T>) O(log n) O(log n) O(log n) -
Hash table based set (HashSet<T>) O(1) O(1) O(1) -
Tree based set (SortedSet<T>) O(log n) O(log n) O(log n) -
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末亏狰,一起剝皮案震驚了整個濱河市役纹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌暇唾,老刑警劉巖促脉,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異策州,居然都是意外死亡瘸味,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門够挂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旁仿,“玉大人,你說我怎么就攤上這事孽糖】莞裕” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵办悟,是天一觀的道長尘奏。 經(jīng)常有香客問我,道長病蛉,這世上最難降的妖魔是什么炫加? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任瑰煎,我火速辦了婚禮,結果婚禮上俗孝,老公的妹妹穿的比我還像新娘酒甸。我一直安慰自己,他們只是感情好赋铝,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布插勤。 她就那樣靜靜地躺著,像睡著了一般柬甥。 火紅的嫁衣襯著肌膚如雪饮六。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天苛蒲,我揣著相機與錄音卤橄,去河邊找鬼。 笑死臂外,一個胖子當著我的面吹牛窟扑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播漏健,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼嚎货,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蔫浆?” 一聲冷哼從身側響起殖属,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瓦盛,沒想到半個月后洗显,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡原环,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年挠唆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘱吗。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡玄组,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谒麦,到底是詐尸還是另有隱情俄讹,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布弄匕,位于F島的核電站颅悉,受9級特大地震影響,放射性物質發(fā)生泄漏迁匠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望城丧。 院中可真熱鬧延曙,春花似錦、人聲如沸亡哄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蚊惯。三九已至愿卸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間截型,已是汗流浹背趴荸。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宦焦,地道東北人发钝。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像波闹,于是被迫代替她去往敵國和親酝豪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,093評論 1 32
  • 在一個方法內(nèi)部定義的變量都存儲在棧中精堕,當這個函數(shù)運行結束后孵淘,其對應的棧就會被回收,此時歹篓,在其方法體中定義的變量將不...
    Y了個J閱讀 4,413評論 1 14
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,770評論 0 38
  • __block和__weak修飾符的區(qū)別其實是挺明顯的:1.__block不管是ARC還是MRC模式下都可以使用瘫证,...
    LZM輪回閱讀 3,293評論 0 6
  • Machine Learning Supervised learning? classification regr...
    龐貝船長閱讀 160評論 0 0