1. 程式人生 > >統計陣列中的重複/不重複元素個數

統計陣列中的重複/不重複元素個數

首先給出暴力方法,平方效能

	public static int count(Comparable[] a) {
		
		//統計重複元素數,如果元素後面沒有和它一樣的那麼它就是不重複元素,否則不是
		int count = 0;
		for(int i = 0;i<a.length;i++) {//判斷0到N-1這些元素是不是重複的
			for(int j = i+1;j<a.length;j++) {
				if(a[j]==a[i]) {
					count++;//a[i]是重複元素
					break;
				}
			}
		}
		return count;
	}

對於這個問題,還有一種線性對數效能的解決辦法,即先排序,再統計,程式碼如下

	public static int count(Comparable[] a) {
		Quick.sort(a);//快速排序
		
		//統計不重複元素數
		int count = 1;
		for(int i = 1;i<a.length;i++) {//第一個元素必然要計數
			if(a[i].compareTo(a[i-1]) != 0) {//和前一個元素重複則不計數
				count++;
			}
		}
		
		return a.length-count;
	}

相關推薦

統計陣列重複/重複元素個數

首先給出暴力方法,平方效能 public static int count(Comparable[] a) { //統計重複元素數,如果元素後面沒有和它一樣的那麼它就是不重複元素,否則不是 int count = 0; for(int i = 0;i&l

python統計列表list、dataframe以及Series重複元素及其相應個數

方法1#say為所要統計的列表 mylist = set(say) #將列表中的元素無重複的抽取出來,賦值給另一個列表 for item in mylist: print

一個有序的陣列,刪除重複出現的元素,輸出不再重複出現的元素個數

輸入:1,1,2,2,2,3,3,4,4,5,5,5,5 輸出:5 public static int removeDuplicates1(int[] nums) { if (nums == null || nums.length < 1) ret

劍指-OFFER_3 java_在一個長度為n的數組裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但知道有幾個數字是重複的。也知道每個數字重複幾次。請找出陣列中任意一個重複的數字。

題源:  在一個長度為n的數組裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意一個重複的數字。   例如,如果輸入長度為7的陣列{2,3,1,0,2,5,3},那麼對應的輸出是第一個重複的數字

隨筆-判斷陣列是否存在重複元素

題目: 給定一個整數陣列和一個整數 k,判斷陣列中是否存在兩個不同的索引 i 和 j,使得 nums [i] = nums [j],並且 i 和 j 的差的絕對值最大為 k。 示例 1: 輸入: nums = [1,2,3,1], k = 3 輸出: true 示例 2:

[科技部與你共成長] 判斷陣列是否有重複元素

給定一個長度為N的陣列,其中每個元素的取值範圍都是1到N。判斷陣列中是否有重複的數字。(原陣列不必保留) 這個題有多種方法,想想看~~~ ------------------------------------------------------------------------

找出陣列唯一的重複元素

題目:陣列 arr[N],1 至 N 這 N - 1 個數存放在 arr[N] 中,其中某個數重複一次,寫一個函式,找出重複的數字。要求每個陣列元素只能訪問一次,不用輔助儲存空間。 分析:由於題目要求每個陣列元素只能訪問一次,不用輔助儲存空間,可以從原理上入手

Contains Duplicate [leetcode] 判斷陣列是否有重複元素

Contains Duplicate 題意:Given an array of integers, find if the array contains any duplicates. Your function should return true if a

判斷陣列是否存在重複元素

      我們經常遇到這樣的問題,判斷一個數組中是否含有重複的元素,解決的辦法通常有許多種,這裡介紹一種常用的思路。       判斷陣列中元素是否重複,則需要對陣列中的元素進行兩兩比較,如果有任意一組元素相等,則該陣列中的元素存在重複,如果任意一組元素都不想等,則表示

scala從集合提取重複元素

Problem     你有一個集合,內部有很多重複元素,你想要把這些重複的元素只保留一份。 Solution     使用Distinct方法: scala> val x = Vector(1, 1, 2, 3, 3, 4) x: scala.collection.

iOS開發之判斷陣列是否有重複元素

######法一: NSMutableDictionary *dic = [NSMutableDictionary dictionary]; for (NSNumber *number in arr) { [dic setObject:n

js去除陣列重複元素和去除陣列相鄰的重複元素

//去除陣列的重複元素 Array.prototype.distinct = function(){ var $ = this; var o1 = {}; var o2 = {}; var o3 = []; var o; for(var i=0;o = $[i]

java生成重複隨機的數字

Java中產生隨機數1 . 呼叫java.lang下面Math類中的random()方法產生隨機數新建一個檔案字尾名為java的檔案,檔名取為MyRandom,該類中編寫如下的程式碼:public class MyRandom {public static void main(String[] args) {

js統計陣列出現次數最多的元素

想來想去沒想出更好的解決方法。 思路就是在ana函式裡先遍歷一遍arr,維護一個數組newArr 用於將所有數值相同的放在陣列中的同一個塊內。另外一個數組unique 用於維護數值唯一,判斷當前的item是否已存在於newArr中。為了方便比較物件的數值相同,

mysql如何重複插入,mysql 重複插入,mysql唯一的插入

INSERT INTO new_schedules_spider_shipsname ( ID,SCAC,VESSEL,VOYAGE,SERVICE_NAME,MD5 ) SELECT NULL,%s,%s,%s,%s,%s FROM DUAL WHERENOT EXISTS ( SELECT *

統計陣列出現次數最多的元素並輸出

實驗過程中遇到一個實際問題:需要統計出10次計數的值中出現最多的一個數,比如輸入34 35 35 35 34 35 35 35 34 33 十個數,要求最終輸出35.如果出現兩個數同樣多,則輸出兩個元素中較小的那一個(也可以是較大的那一個,但是必須確定是其中一種)。 程式碼

找出陣列任意一個重複出現的數字

一個長度為n的陣列arr,陣列元素範圍為0到n-1,陣列中沒有重複或者有一個或多個重複,如果有重複輸出任意一個重複的,無重複輸出-1。 思路1:時間複雜度O(n),空間複雜度O(n)        使用雜湊表的原理,重新定義一個n長的陣列table(預設值全部為0),遍歷

PHP判斷陣列是否有重複值並找出重複

可以用來測試需要唯一憑據號碼的,是否有重複值,不過一般直接使用uuid了,簡單粗暴就解決問題,這個就簡單的測試生成的資料是否有重複值吧   <?php /* * @Author: wyy * @Date: 2019-01-09 13:34:16 * @Email:

java 統計陣列元素出現的次數

package javatest;   import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Se