Lint_Code_最多有多少個點在一條直線上
問題描述:
給出二維平面上的n個點,求最多有多少點在同一條直線上。
樣例:給出4個點:(1,
2)
, (3,
6)
, (0,
0)
, (1,
3)
。一條直線上的點最多有3個。
演算法思想:點和點在不在一條直線上,關鍵兩點之間的斜率是否相同。開始自己寫了一些,但過於理想化,且複雜,沒有考慮全面,並且沒有考慮到使用map集合。最後這種還是從從網上百度出來的:
public int maxPoints(Point[] points) { if(points==null||points.length==0){ return 0; } int max=1; //用到了map集合 HashMap<Double,Integer> map=new HashMap<Double,Integer>(); for(int i=0;i<points.length;i++){ map.clear(); map.put((double)Integer.MIN_VALUE, 1); int dou=0; for(int j=i+1;j<points.length;j++){ if(points[j].x==points[i].x&&points[j].y==points[i].y){ dou++; }else{ double key=(points[j].x-points[i].x==0?(double)Integer.MAX_VALUE:0.0+(double)(points[j].y-points[i].y)/(double)(points[j].x-points[i].x)); if(map.containsKey(key)){ map.put(key, map.get(key)+1); }else{ map.put(key,2); } } } for(int temp:map.values()){ if((temp+dou)>max){ max=temp+dou; } } } return max; }
相關推薦
Lint_Code_最多有多少個點在一條直線上
問題描述: 給出二維平面上的n個點,求最多有多少點在同一條直線上。 樣例:給出4個點:(1, 2), (3, 6), (0, 0), (1, 3)。一條直線上的點最多有3個。 演算法思想:點和點在不在一條直線上,關鍵兩點之間的斜率是否相同。開始自己寫了一些,但過於理
lintcode,最多有多少個點在一條直線上
給出二維平面上的n個點,求最多有多少點在同一條直線上。 樣例 給出4個點:(1, 2), (3, 6), (0, 0), (1, 3)。 一條直線上的點最多有3個。 解題思路:從第一個點開始遍歷,每次和其他所有點對比,判斷是否是重合點,以及是否是同一x值
給定一個二維平面,平面上有 n 個點,求最多有多少個點在同一條直線上。
需求:給定一個二維平面,平面上有 n 個點,求最多有多少個點在同一條直線上。 分析思路: 1、將所有點二維座標化,即定義出所有點的x,y座標值 2、遍歷出所有取出兩點的情況(不考慮先後順序),根據任意兩點都確定一條直線,直線引數為k斜率,b與y軸交點的縱座標(此時x=0),將他們放入一個
最多有多少個點在同一條直線上
給出二維平面上的n個點,求最多有多少點在同一條直線上。 樣例 給出4個點:(1, 2), (3, 6), (0, 0), (1, 3)。 一條直線上的點最多有3個。 import java.util.HashMap; import java.util.Map; impor
給定平面上的n個點,求最多有多少個點共線
給定一個二維平面上的n個點,找出同一條直線上的最大點數。 解法: 窮舉,注意斜率不適用float作為鍵,精度損失。 class Solution { public: int gcd(int x,int y) { //求最大公約數 i
[LeetCode] 340. Longest Substring with At Most K Distinct Characters 最多有K個不同字符的最長子串
sub site result .com con 題目 i++ ++ efault Given a string, find the length of the longest substring T that contains at most k distinct cha
某產品使用A、B、C三種零件組裝而成,三種零件分別由三個相應的零件車間生產。零件組裝則由裝配車間完成,裝配車間有三個分別存放三種零件的貨架S1,S2,S3,分別可存放最多m個A零件,n個B零件,k個C
某產品使用A、B、C三種零件組裝而成,三種零件分別由三個相應的零件車間生產。零件組裝則由裝配車間完成,裝配車間有三個分別存放三種零件的貨架S1,S2,S3,分別可存放最多m個A零件,n個B零件,k個C零件,每件產品分別使用A,B,C三種零件各一個裝配而成,請採
[LeetCode] Longest Substring with At Most Two Distinct Characters 最多有兩個不同字元的最長子串
Given a string S, find the length of the longest substring T that contains at most two distinct characters.For example,Given S = “eceba”,T is “ece” which
[LeetCode] Longest Substring with At Most K Distinct Characters 最多有K個不同字元的最長子串
Given a string, find the length of the longest substring T that contains at most k distinct characters. For example, Given s = “eceba” and k = 2, T is
parttion by ~~~針對某個欄位或多個欄位重複,資料只取前n條。問題例子:1.主評論下的評論按著 時間正序最多隻取前5條 2.獲取最新登入記錄......
分組目前已知partition by、group by partition by用於給結果集分組分割槽,如果沒有指定那麼它把整個結果集作為一個分組,最後顯示具體資料 group by:通過所查詢的資料的某一欄位或屬性進行分組,最後顯示組資料,而不是具體資料,因為select 後面的所有列中,沒有使用聚合函
7-8 點贊(20 分) 微博上有個“點贊”功能,你可以為你喜歡的博文點個贊表示支援。每篇博文都有一些刻畫其特性的標籤,而你點讚的博文的型別,也間接刻畫了你的特性。本題就要求你寫個程式,通過統計一個人
#include <stdio.h> #include <stdlib.h> int main() { int n,k,a[1000],c[1000],i,j=0,p;///先合併成一個數組 scanf("%d",&n);
Google 面試題 10 | 最多有k個不同字元的最長子字串
題目描述 給定一個字串,找到最長的包含最多k個不同字元的子串,輸出最長子串的長度即可。 Example: 給出字串”eceba”,k = 2 輸出答案3,最長包含最多2個不同字元的子串為”ece”。 官方題解(並沒有看懂): 最暴力的做法是窮舉所有
給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多只允許完成一筆交易(即買入和賣出一支股票),設計一個算法來計算你所能獲取的最大利潤。
pan stat 給定 arr 註意 turn 大於 交易 nbsp 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多只允許完成一筆交易(即買入和賣出一支股票),設計一個算法來計算你所能獲取的最大利潤。 註意你不能在買入股票前賣出股票。 示例 1
雙色球--最多2個號碼相同的內幕
str 數組 標題 string 內幕 exti continue print use 雖然是標題黨,但是功能卻是能讓雙色球最多只有2個球號碼相同,不知道沒中過雙色球或者只有2個雙色球的小夥伴是不是買了假的雙色球了啊。 代碼如下: class Doubleball{ pub
【XSY1295】calc n個點n條邊無向連通圖計數 prufer序列
ring pre end ctime 節點 splay 按順序 sin algorithm 題目大意 求\(n\)個點\(n\)條邊的無向連通圖的個數 \(n\leq 5000\) 題解 顯然是一個環上有很多外向樹。 首先有一個東西:\(n\)個點選\(k\
添加 Class 屬性無效,原因:多了個 點
info AC 技術 分享圖片 bubuko back fff 分享 css CSS樣式如下: 解決辦法:去掉 “ . ” 添加 Class 屬性無效,原因:多了個 點
[Al]演算法:有n級階梯,每次走1步或2步,最多有多少種走法
@Filename : floor.c * @Author : Mr.Zhong * @Date : 2018-11-02 * @Description: n級階梯,每次走一步或2步,最多有多少種走法 * @Analysis :
zcmu4959(有個點容易忽略)
4959: ly的新鬧鐘 Time Limit: 1 Sec Memory Limit: 128 MB [Submit][Status][Web Board] Description 最近ly買了一個新鬧鐘,每天盯著這個鬧鐘看,越看越喜歡…為了不讓ly浪費時間
假設狗一年1歲,第3年和第5年個生出一條小狗,第六年死亡,計算第n年狗的個數(不考慮公母)
2種演算法 先定義一個狗的class class Dog: year = 1 def is_dead(self): return True if self.year >= 6 else False def add(self):
Mybatis一對多或多對多隻能查出一條資料解決策略
<resultMap id="menuModelMap" type="com.yyzq.springboot.model.MenuModel" > <id column="id" property="id" jdbcType="BIGINT" />