明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了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...