遇到的演算法題 01(取排序陣列的重複元素)

2021-09-22 21:35:36 字數 505 閱讀 1933

現有兩個從小到大排好序的int陣列(每個陣列自身沒有重複元素)。請找出所有在這兩個陣列中都出現過的數。請寫乙個函式,輸入為兩個陣列。

思路簡述:因為陣列已經排好序,且沒有重複資料。

所以可以採用兩個指標分別指向兩個排序的陣列num1、num2。然後當兩個值相同的時候就儲存下來同時將兩個指標都向後移動,當num1較小時則該指標向後移動,當num2較小的時候則該指標向後移動,直到其中任何乙個指標指向陣列末尾。

#include

#include

using namespace std;

vectorget_both_num(const vector& num1,const vector& num2)

int i=0,j=0;

while(i < num1.size() && j < num2.size())else if(num1[i] < num2[j])else

}return result;

}void printf(vector& n)

演算法題 有序陣列去重

將有序陣列去重並且列印去重之後的長度。快慢指標思想,邏輯上的指標,並非 這個指標 定義兩個指標slow,fast。fast逐個遍歷元素,如果與slow不同,則把slow所指元素列印出來,如果與slow所指元素相同,則fast 1,直至遍歷結束。include using namespace std ...

演算法題 搜尋旋轉排序陣列

假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 搜尋乙個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回 1。你可以假設陣列中不存在重複的元素。你的演算法時間複雜度必須是 o log n 級別。1 ...

LeetCode26題 刪除排序陣列中的重複項

package cn.wyu.leetcode 給定乙個排序陣列,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 o 1 額外空間的條件下完成。示例 1 給定陣列 nums 1,1,2 函式應該返回新...