[討論] LeetCode 1649. Create Sorted Array thr

作者: osnq (又可以掛bbs了)   2023-12-09 08:05:25
1649. Create Sorted Array through Instructions
請教各位關於這一題,
研究過 solution 與 editorial, 大概就是需要 O(nlog n) 才會過.
因為 input 的關係, 所以要搜尋到正確的位置 insert 就得用 binary search
只是... 還是發生了TLE...
下面是我的 solution, 應該是 O(nlog n).
還請大家幫忙釋疑解惑, 一起討論一下. 謝謝大家.
const int mod = 1e9 + 7;
int createSortedArray(vector<int>& instructions)
{
int ans = 0;
int l = 0;
int r = 0;
int left = 0;
int right = 0;
int n = instructions.size();
vector<int> nums;
for (int i = 0; i < n; i++)
{
if (nums.size() < 1) {
nums.push_back(instructions[i]);
continue;
}
l = lower_bound(nums.begin(), nums.end(), instructions[i]) - nums.begin();
r = upper_bound(nums.begin(), nums.end(), instructions[i]) - nums.begin();
left = l;
right = nums.size() - r;
ans += min(left, right);
ans = ans % mod;
nums.emplace(nums.begin() + left, instructions[i]);
}
return ans;
}

Links booklink

Contact Us: admin [ a t ] ucptt.com