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 ...