Leetcode第320场周赛
第一题:6241. 数组中不等三元组的数目 - 力扣(LeetCode)
分析:数据范围小,三重循环暴力计数。
代码实现:
class Solution {
public:
int unequalTriplets(vector<int>& nums) {
int n = nums.size();
int cnt = 0;
for(int i = 0;i < n; i ++){
for(int j = 0;j < n;j ++){
for(int k =0;k < n;k ++){
if(nums[i] != nums[j] && nums[i] != nums[k] && nums[k] != nums[j] && i < j && j < k)cnt ++;
}
}
}
if(cnt == 0)return 0;
else return cnt;
}
};
第二题:6242. 二叉搜索树最近节点查询 - 力扣(LeetCode)
分析:
- 用一个算法将这棵树上的所有值获取下来。
- 对每个查询进行二分查找(保证数组的单调性)。
代码实现:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution {
public:
vector<int>vec;
void inorder(TreeNode* root)
{
if(root==nullptr)return;
inorder(root->left);
vec.push_back(root->val);
inorder(root->right);
}
tuple<int,int> find_pos(vector<int>& nums,int target)
{
if(target<nums[0])return {-1,nums[0]};
else if(target>nums[nums.size()-1])return {nums[nums.size()-1],-1};
int left=0;
int right=nums.size()-1;
int mid=(left+right)/2;
while(left<=right)
{
if(nums[mid]==target)return {nums[mid],nums[mid]};
else if(nums[mid]>target) right=mid-1;
else left=mid+1;
mid=(left+right)/2;
}
return {nums[right],nums[left]};
}
vector<vector<int>> closestNodes(TreeNode* root, vector<int>& queries) {
vector<vector<int>> ans;
inorder(root);
for(auto i:queries)
{
vector<int>temp(2);
auto[val1,val2]=find_pos(vec,i);
temp[0]=val1;
temp[1]=val2;
ans.push_back(move(temp));
}
return ans;
}
};
Acwing第78场周赛
分析:分别把商品名和产地名字的长度用空格补充为10后拼接起来后插入set中,以保证唯一性。
代码实现:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
unordered_set<string> st;
while(n--){
string name, place;
cin >> name >> place;
while(name.size()<10) name = name + ' ';
while(place.size()<10) place = place + ' ';
st.insert(name + place);
}
cout<<st.size()<<endl;
return 0;
}
本文解析了LeetCode第320场周赛的两道题目,包括数组中不等三元组的数目及二叉搜索树最近节点查询,并介绍了AcWing第78场周赛的一道商品种类问题。通过详细分析与代码实现,帮助读者理解算法思路。
345

被折叠的 条评论
为什么被折叠?



