作者Kuba4ma ()
看板C_and_CPP
标题[问题] Leetcode 744
时间Fri Jul 9 14:40:02 2021
https://i.imgur.com/gsNoiha.png
https://i.imgur.com/ZRff8qC.png
Leetcode 744. Find Smallest Letter Greater Than Target
一样的code在 leetcode 上执行和在 VScode 执行上结果不同
自己trace过一遍觉得应该没问题
是有 bug 吗? 还是.....?
vector<char> letters = {'c' ,'f', 'j'};
char ans;
char target = 'k';
int left = 0;
int right = letters.size()-1;
while(left<=right){
int m = left+(right-left)/2;
if(letters[m]>target){
ans = letters[m];
right = m-1;
}
else if(letters[m]<=target)
left = m+1;
}
if(ans>target)
cout<<ans<<endl;
else
cout<<letters[0]<<endl;
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.10.21.68 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1625812804.A.981.html
※ 编辑: Kuba4ma (101.10.21.68 台湾), 07/09/2021 14:55:12
1F:推 ckc1ark: ans的值有可能没更新 07/09 14:58
2F:→ Kuba4ma: 谢谢一楼 ans确实没更新 但不知道为什麽vscode会输出c 07/09 15:09
3F:→ Kuba4ma: 改成 char ans = 'a' 就可以过 leetcode了 07/09 15:10
4F:推 achicn3: lower_bound 好用 07/09 17:45
5F:推 ucrxzero: 自从帮柠檬羊解两次bug都不理人我就懒得帮人解了 07/09 18:34
6F:推 yao: 变数没有预设值就去调用也算是一种coding错误 07/10 13:46