現有一袋有數字的小球,各球的數字不重複,請給出合適的演算法,給最多有多少個編號連續的小球,要求演算法的時間複雜度為o(n
)o(n)
o(n)
。雜湊表+圖的深度搜尋
#define size 97
//思路:先將序列加入雜湊鍊錶;再查詢元素的連續序列的+1和-1,
//查詢到後將元素從雜湊表中刪除
typedef
struct hashnode_hashnode;
typedef
struct hashrow_hashrow;
hashrow *row;
hashrow *
initialhashrow()
intgetpos
(int target)
}int
searchelem
(int target)
return0;
}}intaddelem
(int target)
intdeleteelem
(int target)
else p=p->next;
while
(p!=
null
) p=p->next;
q=q->next;
}return0;
}}intgetmaxlen
(int
*nums,
int numssize)
for(
int i=
0;i) target=nums[i]
;while
(searchelem
(++target)==1
)//檢測比target大的
cur_size+=1
;deleteelem
(nums[i]);
}if(cur_size>maxsize) maxsize=cur_size;
cur_size=0;
}return maxsize;
}
求1 N 的數中因子是最多的數及其最多的個數
問題描述 求1 n當中約數個數最多的數的個數。輸入格式 t組資料 每一組只有一行。這一行有乙個數n 1 n 10 18 input313 91000000000000000000 output139 103680 分析 直接暴力肯定會超時,那麼怎麼處理呢?根據唯一分解定理,我們可以知道乙個整數是可以...
求亂序排序的N個數中連續K個數的和的最大值。
1 有乙個整形陣列,其元素包含正整數和負整數,找到它的所有子集中元素之和最大的那個子集。如 12,3,54,42,4,5,7 結果為63 12,3,54 要求複雜度為o n intfunc intn,inta return sum 2 求亂序排序的n個數中連續k個數的和的最大值。具體思路 假設有n個...
求乙個陣列的最長連續子串行
分析 如果允許o nlogn 的複雜度,那麼可以先排序,可是本題要求o n 由於序列裡的元素是無序的,又要求o n 首先要想到用雜湊表。用乙個雜湊表unordered mapused 記錄每個元素是否使用,對每個元素,以該元素為中心,往左右擴張,直到不連續為止,記錄下最長的長度。class solu...