正方形中的最多点数

2024-05-12 20:04
文章标签 点数 正方形

本文主要是介绍正方形中的最多点数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码实现:

方法一:遍历——超时
int maxPointsInsideSquare(int **points, int pointsSize, int *pointsColSize, char *s) {int a = 0;int flag = 1;int num, pre_num = 0;while (flag) {num = pre_num;pre_num = 0;int hash[26] = {0};for (int i = 0; i < pointsSize; i++) {if (abs(points[i][0]) <= a && abs(points[i][1]) <= a) {if (hash[s[i] - 'a']) {flag = 0;break;}pre_num++;hash[s[i] - 'a']++;}}if (pre_num == pointsSize) {num = pre_num;break;}if (flag) {a++;}}return num;
}
方法二:二分法
int func(int mid, int n, int **points, char *s) {int ret = 0;bool vis[26] = {0};for (int i = 0; i < n; i++) {if (abs(points[i][0]) <= mid && abs(points[i][1]) <= mid) {int c = s[i] - 'a';if (vis[c]) {return -1;}ret++;vis[c] = true;}}return ret;
}
int maxPointsInsideSquare(int **points, int pointsSize, int *pointsColSize, char *s) {int n = pointsSize;int head = 0, tail = 1e9;while (head < tail) {int mid = (head + tail) / 2;if (func(mid, n, points, s) >= 0) {head = mid + 1;} else {tail = mid;}}return func(head - 1, n, points, s);
}

这篇关于正方形中的最多点数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/983605

相关文章

1169 正方形

简单- 时间限制: 1000MS内存限制: 256MB分数:100OI排行榜得分:10(0.1*分数+2*难度) 考点:选择结构 描述 有一个正方形,四个角的坐标分别是(1,-1),(1,1),(-1,-1),(-1,1)。写一个程序,判断一个给定的点(x,y)是否在这个正方形内(包括正方形边界),如果在正方形内输出“Yes”,否则输出“No”。 输入描述 一行两个空格隔开的实数x,y,

二维坐标中在一条直线上最大点数

import java.util.HashMap;class Point {int x;int y;Point() { x = 0; y = 0; }Point(int a, int b) { x = a; y = b; }}public class Solution {//解法一:存在问题public int maxPoints(Point[] points) {if(points==nu

POJ 2002 Squares hash求正方形个数

题意:给你n个点 坐标都小于20000 数一下可以组成多少个正方形 思路:借鉴了网上hash的思路 哈希链地址法 把x+y的绝对值相同的放人一个链表里 然后枚举2个点(1条边上的) 推算出另外2个点 另外2点分别是 x1 = a[i].x+(a[i].y-a[j].y);y1 = a[i].y-(a[i].x-a[j].x); x2 = a[j].x+(a[i].y-a[j].y);y2

使用spark基于出租车GPS数据实现车辆数量统计以及北京每个城区的车辆位置点数分析

使用spark基于出租车GPS数据实现车辆数量统计以及北京每个城区的车辆位置点数分析 本文将介绍如何使用pyspark以及scala实现的spark分析出租车GPS数据,具体来说,我们将计算每个北京城区内的车辆位置点数,以及统计出租车的数量。我们将使用两个数据集:district.txt 包含北京各城区的中心坐标和半径,taxi_gps.txt 包含出租车的GPS位置数据。以下是数据文件的示例内

「动态规划」如何计算能获得多少点数?

740. 删除并获得点数https://leetcode.cn/problems/delete-and-earn/description/ 给你一个整数数组nums,你可以对它进行一些操作。每次操作中,选择任意一个nums[i],删除它并获得nums[i]的点数。之后,你必须删除所有等于nums[i] - 1和nums[i] + 1的元素。开始你拥有0个点数。返回你能通过这些操作获得的最大点数。

「动态规划」如何求地下城游戏中,最低初始健康点数是多少?

174. 地下城游戏https://leetcode.cn/problems/dungeon-game/description/ 恶魔们抓住了公主并将她关在了地下城dungeon的右下角。地下城是由m x n个房间组成的二维网格。我们英勇的骑士最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至0或以下,他会立即死亡

个人笔记--python用tanh画圆形,正方形,长方形(epsilon界面宽度)

用tanh函数画图 圆形 import numpy as npimport matplotlib.pyplot as plt# 创建一个二维网格xx = np.linspace(-1, 1, 1000)yy = np.linspace(-1, 1, 1000)x_i, y_i = np.meshgrid(xx, yy)# 圆的半径和中心r = 0.4center_x, cent

「动态规划」删除并获得点数

力扣原题链接,点击跳转。 给你一个整数数组nums。每次操作,可以删除任意一个值n,接着获得点数n,并同时删除所有的n-1和n+1。你最多能获取多少点数? 这个问题的解法相当巧妙。我们可以把问题先转化一下。用类似计数排序的思路,定义一个数组arr,用arr[i]表示所有的点数i的和。比如nums数组:1、2、2、3、3、3,那么arr数组:0、1、4、9,因为1出现1次,和为1;2出现2次,和

【教学类-综合练习-05】20240524 中4班实物点数-纽扣(0-5加法、0-10加法)

背景需求: 百日咳班级只有5人,把库存的python纸类学具都用掉。其中就有大量的加减法题。 0-5以内题目早就没有了,中班幼儿做5以内。所以只能硬着头皮发0-10以内的加法题练习,并让孩子们去材料去拿10颗纽扣,进行两列摆放,点数总数。 【教学类-06-17】20231215 (小于55题,但填满55格)X-Y之间“加法题+题”-CSDN博客文章浏览阅读412次,点赞9次,收藏5次。

【Leetcode每日一题】 动态规划 - 简单多状态 dp 问题 - 删除并获得点数(难度⭐⭐)(76)

1. 题目解析 题目链接:LCR 091. 粉刷房子 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 1. 状态定义 在解决这类问题时,我们首先需要根据题目的具体要求来定义状态。针对房屋粉刷问题,我们可以定义一个二维数组dp来表示状态,其中dp[i][j]表示粉刷到第i个位置时,且最后一个位置粉刷成颜色j(j可以是红、蓝、绿三种颜色)时的最小花费。