去重排序問題

2021-09-12 08:42:08 字數 1548 閱讀 6776

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數(n≤1000),對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成「去重」與「排序」的工作(同乙個測試用例裡可能會有多組資料,希望大家能正確處理)。

對於去重排序問題:

1、使用兩重迴圈,判斷是否重複,如果沒有重複就儲存到壓入乙個vector物件中,這樣得到乙個沒有重複元素個數的vector物件。注意flag的使用。

2、然後使用簡單穩定的氣泡排序排序即可

#include#includeusing namespace std;

void swap(int arr, int i,int j)

//使用棧排序記得傳遞引用

void swap(vector&v, int i, int j)

int main()

vectorf;

for (int i = 0; i < v.size(); i++)

}//排除重複的元素之後存入另外乙個棧

if (flag == 1)

f.push_back(v[i]);

} //不會對棧資料排序,只有先存入陣列[捂臉]

//可以直接將資料存入新建的動態陣列中

/*int* p = new int[f.size()];

for (int i = 0; i < f.size(); i++) */

//注意冒泡的e的序號,是len-1

/*for (int e = f.size() - 1; e > 0; e--)

}*///使用棧排序

思路:使用乙個flag標誌位即可,如果存在後面和前面相等falg = 0,不輸出

#include#include#includeusing namespace std;

int main()

} for (int i = 0; i < s.length(); i++)

}if (flag == 0)

cout << s[i];

} cout << endl;

}}

比如輸入aabbc,輸出3,輸入abccc輸出3

#include#include#includeusing namespace std;

int main()

}if (flag == 1)

} cout << count << endl;

}}

集合去重,排序

author ylm sigmund since 2021 1 16 12 22 public class duplicateremovaltest 基本資料型別,lambda表示式去重 test public void basicdatatypeforlambda 物件去重,需要重寫hashcod...

陣列去重排序

created methods 雙層迴圈,外層迴圈元素,內層迴圈時比較值 如果有相同的值則跳過,不相同則push進陣列 arraydereordering result.push arraydata i console.log this.sortmethod result return this.s...

資料去重,排序

看到array,就要想到角標。看到link,就要想到first,last。看到hash,就要想到hashcode,equals.看到tree,就要想到兩個介面。comparable,comparator。我們在開發的過程中使用hashmap比較多,在map中在map 中插入 刪除和定位元素,hash...