找出不重複的元素個數(先遞增然後遞減)

2021-10-11 17:40:31 字數 1492 閱讀 7568

7.找出不重複的元素個數

題目

乙個資料先遞增再遞減,找出陣列不重複的個數。不能使用額外空間,複雜度o(n)

思路:

方法1:首先用快排進行1排序,然後中不同

方法二:找到最大的位置然後,從最大的位置向兩邊移動(雙指標)

誰大誰移動 左右指標相等 那麼同時移動

**:

class

solution

} cout<<

"maxindex="

int right=maxindex+1;

int ret=0;

while

(left>=

0&&right<=numbers.

size()

-1) left--;}

else

if(numbers[left]

) right++;}

else

if(numbers[left]

==numbers[right]

) left--

;while

(right<=numbers.

size()

-2&&numbers[right]

==numbers[right+1]

) right++;}

}while

(left>=0)

left--;}

while

(right<=numbers.

size()

-1) right++;}

return ret;

}public

:int

diffnumbersum

((vector<

int>

&numbers)

;// vectornumbers;

//首先排序法**判定有多少個不同的數

sort

(numbers.

begin()

,numbers.

end())

;if(numbers.

size()

==0)return0;

int diffs=0;

for(

int i=

0;isize()

;i++

)

cout<<

"diffs1="

_maximumswap

(numbers)

; cout<<

"diffs2="

;

找出列表中重複的元素及個數

方法一 將陣列轉成集合,然後迴圈 data 1,1,2,2,2,3,3,4,4,4,4,4,5,6,7,8,8,8,8,8,8,9 lis set data for i in lis if data.count i 1 print data陣列中重複的元素是 d,它的個數是 d個 i,data.co...

矩陣中不重複的元素

乙個m n的矩陣。該矩陣的第一列是a b,a 1 b,a n 1 b 第二列是a b 1 a 1 b 1 a n 1 b 1 第m列是a b m 1 a 1 b m 1 a n 1 b m 1 a b表示a的b次方 下面是乙個4 4的矩陣 2 2 4,2 3 8,2 4 16,2 5 32 3 2 ...

矩陣中不重複的元素

乙個m n的矩陣。該矩陣的第一列是a b,a 1 b,a n 1 b 第二列是a b 1 a 1 b 1 a n 1 b 1 第m列是a b m 1 a 1 b m 1 a n 1 b m 1 a b表示a的b次方 下面是乙個4 4的矩陣 2 2 4,2 3 8,2 4 16,2 5 32 3 2 ...