原文:面試之求找兩個數和為某個數、幾個連續數等於某個數

問題 輸入一個遞增排序數組和一個數字s,在數組中查找兩個數,使得它們的和正好是s,如果有多對數字的和等於s,輸出任意一對即可。 顯然,很快能想到的是使用蠻力法 O n ,先固定一個數字,再判斷剩下的n 個數字與它的和是否等於s。這種效率顯然有點低,我們可以使用下面比較快的方式,時間復雜度O n 。 思路:我們通過兩個記錄數組的開始位置和結束位置,從數組的尾部開始,求兩個數字的和, 如果兩個數的和 ...

2015-07-28 14:57 4 2891 推薦指數:

查看詳情

面試-算法 已經排好序的數組中兩個數的和等於N

已知一個拍好序的數組,長度為M 在其中兩個數,其和為N 剛剛拿到這個題目的時候,首先的常規想法是遍歷循環求出所有的和,最終其值為N的就是結果,這個算法時間復雜度為o(N*N) 可能還有一些擴展的想法,那就是先把數組中比N大的元素去掉,這樣少檢查幾個元素 這是典型的程序員思維,太早 ...

Sat Dec 24 06:34:00 CST 2011 6 2637
兩個數組的交集

題目意思大概是這樣的:給定兩個大數組(1w以上1億以下),用最有效的方法找出來兩個數組的交集。 對於這道題,我有一個思路就是,先對數組進行排序,然后用兩個指針在已排序的數組上輪流指向頭結點,進行比較。 比較亮的地方,就是在於這個比較的方式了。 首先,比較的時候,要先確定兩個指針指向的內用是 ...

Sun Sep 22 17:10:00 CST 2013 19 10067
在數組中尋找兩個數之和等於目標

本道題目我起初的想法是暴力尋找兩個數之和,每次與目標進行比對,這樣的時間復雜度是O(n2)。 改進: 我使用散列表將數組元素散列存儲,這樣便可以對元素進行O(1)訪問,從而實現在O(n)的時間復雜度解決該問題。 ...

Thu Apr 02 20:03:00 CST 2020 0 610
練習5-2 兩個數中最大者 (10分)

本題要求對兩個整數a和b,輸出其中較大的。 函數接口定義: int max( int a, int b ); 其中a和b是用戶傳入的參數,函數返回的是者中較大的。 裁判測試程序樣例: #include <stdio.h> int max( int ...

Sat Mar 28 23:23:00 CST 2020 0 2111
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM