[讨论] 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