Re: [閒聊] 每日leetcode
今天跟昨天的怎麼都寶寶題
這樣跟我說是medium
2938. Separate Black and White Balls
有n個球,分成黑色和白色
1是黑色、0是白色
每一次可以把相鄰的兩顆球互換
請問最少要幾次可以把白球全部放在左邊、黑球全部在右邊?
思路:
用two pointer
左指標從0開始右指標從n-1開始
左指標就去找黑球
右指標找白球
都找到後答案加上左右指標相減的值
就這樣一直做下去就可以得到答案了
C code :
long long minimumSteps(char* s) {
int l=0,r=strlen(s)-1;
long long ans=0;
while (r>l){
while(l<r && s[l]!='1'){
l++;
}
while (l<r && s[r]!='0'){
r--;
}
ans+=(long long)(r-l);
r--;
l++;
}
return ans;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.212.87 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1728997896.A.D36.html
推
10/15 21:33,
1年前
, 1F
10/15 21:33, 1F
討論串 (同標題文章)
完整討論串 (本文為第 990 之 1548 篇):