このループがどのように終了するのか知りたいですか? iとjはs.charAt(j ++)とs.charAt(i ++)を除いてどこでもインクリメントされていないので、jまたはi番目の位置でcharを見つけることができます。それもjとiを増やしますか?私の意見では、j ++やi ++での文字コードはそれほどではないでしょうか? ++ iの値をインクリメントIを用いwhileループ終了条件
public class Solution {
public int lengthOfLongestSubstring(String s) {
int n = s.length();
Set<Character> set = new HashSet<>();
int ans = 0, i = 0, j = 0;
while (i < n && j < n) {
// try to extend the range [i, j]
if (!set.contains(s.charAt(j))){
set.add(s.charAt(j++));
ans = Math.max(ans, j - i);
}
else {
set.remove(s.charAt(i++));
}
}
return ans;
}
}
'i ++'は 'i'に格納された値を変更します。 –
ありがとう!それは私がそれがすると信じていたものです。 –