C++STL中pair容器的使用

本文记录了作者在LeetCode周赛中首次使用C++STL pair容器解决6042题的过程。原本超时的代码在改用pair后成功通过,文章解释了pair的性质和用途,以及它如何帮助优化解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c记录第一次C++STL中pair容器的使用

第一次参加Leetcode周赛,结果在第二题中就遇到卡壳,卡了一小时,结果比赛结束后才通过pair容器做出来。

题目如下:

6042. 统计圆内格点数目

  • 通过的用户数 2963
  • 尝试过的用户数 3691
  • 用户总通过次数 3069
  • 用户总提交次数 6831
  • 题目难度:Medium

给你一个二维整数数组 circles ,其中 circles[i] = [xi, yi, ri] 表示网格上圆心为 (xi, yi) 且半径为 ri 的第 i 个圆,返回出现在 至少一个 圆内的 格点数目

注意:

  • 格点 是指整数坐标对应的点。
  • 圆周上的点 也被视为出现在圆内的点。

题目来源:Leetcode(力扣)

题目链接:https://leetcode-cn.com/contest/weekly-contest-290/problems/count-lattice-points-inside-a-circle/

示例 1:

请添加图片描述

输入:circles = [[2,2,1]]
输出:5
解释:
给定的圆如上图所示。
出现在圆内的格点为 (1, 2)、(2, 1)、(2, 2)、(2, 3) 和 (3, 2),在图中用绿色标识。
像 (1, 1) 和 (1, 3) 这样用红色标识的点,并未出现在圆内。
因此,出现在至少一个圆内的格点数目是 5 。

我第一次提交的代码及注释:

int countLatticePoints(vector<vector<int>>& circles) {
   
        map<vector<int>,int>m; // 定义map类型变量m,vector<int>存储点的坐标,1表示该点符合要求,0表示该点不符合要求
        int x,y,r;
        int count = 0;//存储符合要求点的总数
        for(int i = 0; i < circles.size(); i++)//遍历数组,得到每个圆的圆心坐标及半径
        {
   
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值