正方形中的最多点数

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

相关文章

LeetCode:64. 最大正方形 动态规划 时间复杂度O(nm)

64. 最大正方形 题目链接 题目描述 给定一个由 0 和 1 组成的二维矩阵,找出只包含 1 的最大正方形,并返回其面积。 示例1: 输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4 示例2: 输入: 0 1 1 0 01 1 1 1 11 1 1 1 11 1 1 1 1输出: 9 解题思路 这道题的思路是使用动态规划

【刷题笔记】删除并获取最大点数粉刷房子

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 题目一 题目链接:删除并获取最大点数 思路: 预处理状态表示 状态转移方程 代码如下: class Solution {public:int deleteAndEarn(vector<int>& nums) {int N=10001;int arry[N]={0};for(auto x:nums){ar

3127. 构造相同颜色的正方形(24.8.31)

题目 给你一个二维 3x3 的矩阵 grid,每个格子都是一个字符,要么是 'B' ,要么是 'W'。字符 'W' 表示白色,字符 'B' 表示黑色。 你的任务是改变至多一个格子的颜色,使得矩阵中存在一个 2x2 颜色完全相同的正方形。 如果可以得到一个相同颜色的 2x2 正方形,那么返回 true ,否则返回 false 示例 1: 输入: grid=["B","W","B"],["B",

Gridview图片正方形

现在在Android应用中,GridView中每个Item都是正方形的场景越来越常见。比如 陌陌 的搜索结果界面 陌陌的搜索界面显示 Android手机和IPhone不同, IPhone硬件是苹果自己出的,屏幕尺寸基本没啥太大差别,所以很好适配。 而Android就不一样了,中高低档手机都有,屏幕尺寸严重不统一,如何做到一种实现适配各种Android手机屏幕才是关键。 今天

flex实现骰(tou)子点数

文章目录 效果演示分析思路代码实现 效果演示 分析思路 5点需要使用margin进行移动点数。而6点的话,使用align-content: space-between;和 justify-content: space-between;就能实现,不过需要注意的是主轴为侧轴,dot的第二个要给padding才能实现每一列3个点。 代码实现 <!DOCTYPE html>

第五章-OpenMV4 色块识别的图形圆形 正方形识别、 黑色红色识别颜色、坐标识别

项目比赛中需要识别黑色圆形和黄色方形状 要是识别的圆形 openmv代码如下代码带了阈值如何更改阈值 可以使用下面方法 这里是循迹 把循迹线调节成白色就是颜色追踪阈值 把线 调整成 import sensor, image, timesensor.reset() # 重置图像传感器sensor.set_pixformat(sensor.RGB565) # 设置像素格式为RG

[Mdfs] lc473. 火柴拼正方形(剪枝优化+经典题+好题)

文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接:473. 火柴拼正方形 拔高、证明: [dfs] aw167. 木棒(dfs剪枝与优化+分类讨论+思维+好题) 2. 题目解析 水一篇。和之前的一个问题一模一样,在此不再赘述,写出来方便搜索。 [Mdfs] lc698. 划分为k个相等的子集(剪枝优化+经典题+好题) 时间复杂度:此类 dfs 和剪枝

polarctf靶场【四方密码题】【CRYPTO】不一样的四四方方、四个正方形

[CRYPTO]不一样的四四方方 考点:四方密码 在线网站: https://www.metools.info/code/four-square244.html 或者https://wtool.com.cn/four.html 请开始你的表演(密文):jilinjingcha注意:正确的密钥后面最后一个字母不要!!!key1:informationkey2:engineering

判断正方形

随机输入四个点坐标,判断是否为正方形 编写一个程序,输入为平面上的四个点A(x1,y1),B(x2,y2),C(x3,y3),D(x4,y4)编写程序判断这四个点能不能组成一个正方形,可以只说思路,不用写代码. #include <iostream>using namespace std;int main(){int point[4][2] = {0};//存储点坐

LeetCode 3143. 正方形中的最多点数【位运算,构造法】中等【C++,Java,Py3,Go,Rust】

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。 为了方便在PC上运行调试、分享代