Why My NNLog(N) soln got tle for 3rd Q , When N= 1000 , It should work , https://leetcode.com/problems/smallest-substring-with-identical-characters-i/solutions/6172861/need-help-why-2-n-n-log-n-solution-not-passed/ , Can anybody help.
# | User | Rating |
---|---|---|
1 | tourist | 3985 |
2 | jiangly | 3814 |
3 | jqdai0815 | 3682 |
4 | Benq | 3529 |
5 | orzdevinwang | 3526 |
6 | ksun48 | 3517 |
7 | Radewoosh | 3410 |
8 | hos.lyric | 3399 |
9 | ecnerwala | 3392 |
9 | Um_nik | 3392 |
# | User | Contrib. |
---|---|---|
1 | cry | 169 |
2 | maomao90 | 162 |
2 | Um_nik | 162 |
4 | atcoder_official | 161 |
5 | djm03178 | 158 |
6 | -is-this-fft- | 157 |
7 | adamant | 155 |
8 | awoo | 154 |
8 | Dominater069 | 154 |
10 | luogu_official | 150 |
Why My NNLog(N) soln got tle for 3rd Q , When N= 1000 , It should work , https://leetcode.com/problems/smallest-substring-with-identical-characters-i/solutions/6172861/need-help-why-2-n-n-log-n-solution-not-passed/ , Can anybody help.
Here , u just have to take a = c^d ,Then check if it do satisy the condition or not , if it doesn't then cout -1 , else cout a.
Proof: In my solution (283677605) you only ever add a bit to a if exactly one of c and d contains that bit, otherwise you either get a contradiction on the spot, or you don't add the bit and move on
why is that If you add that bit to a then (looking just at that bit) a | b=1 and so 1−c=d . If you don't add that bit, then a & c=0 and so b=d . If neither b=d nor c ^ d=1 holds then you can't construct such a . Note that carrying over never happens throughout the process.
. You can skip the latter cases and check if that value of a works, at the end. This is exactly equivalent to setting a=c ^ d and checking if it works.
Name |
---|