1. max points on a line 這道題思路不難,對於每乙個點,然後歷遍後面的點,計算斜率然後儲存到map裡。需要有兩個特殊情況,乙個是垂直,其實也可以存成斜率1.0,另乙個是重複,最後要注意儲存的時候要注意最後最後計算數目的時候不能忘記點本身,還要注意在計算斜率的時候要先轉成double然後再計算。這個題應該還可以儲存dup的節點,這樣以後遇到了就不用重複計算了。
/**
* definition for a point.
* class point
* point(int a, int b)
* }*/public class solution
hashmapres = new hashmap();
int max = 0;
for (int i = 0; i < points.length; i++) else
}else else
if (res.containskey(k)) else }}
for (int num : res.values())
max = math.max(max, ver + dup + 1);
res.clear();
}return max;
}}
2. candy 這個題不算難直接就想出來了,可以從左向右歷遍,然後再從右往左確保滿足條件
public class solution
int candy = new int[ratings.length];
candy[0] = 1;
for (int i = 1; i < ratings.length; i++) else
}for (int i = ratings.length - 2; i >= 0; i--)
}int num = 0;
for (int i = 0; i < ratings.length; i++)
return num;
}}
03 04做題總結
3 4 月做題總結 題目鏈結 主要思路 確定比賽名次 拓撲排序 奇怪的夢境 拓撲排序判環 逃生反向拓撲 儀仗隊o尤拉函式 秦隊長的猜想 g哥德 猜想 棋盤問題 dfs 回溯 非常可樂 bfs or 數論 表示式求值 m模擬legal or not t拓撲排序 產生冠軍 t拓撲排序 reward 拓撲...
做題總結 Pawn s Revenge
題目描述 這道題目自己一開始時也沒有思路 後來才發現其實也並不難,實在是學的不太好 後來從網上查詢了一些資料,大概明白了這道題目的思路。這道題目是在已經有且只有乙個k棋子的情況下,通過增加最少數量的的pawn棋子,能夠將對方的所有的 棋子全部攻擊到,其中k能夠攻擊其餘八個方向,pawn棋子只能攻擊左...
做題總結 Latin Squares
原題 題意分析 題目就是輸入乙個二維陣列 用來表示矩陣 判斷對於矩陣中的每乙個數字是否在該數字所在的行 所在的列的只出現一次 相當於數獨的概念 如果是的話,則該矩陣是拉丁方,再判斷矩陣的第一行 第一列的元素是否按照公升序的方式排列的,從而進行對應的判斷輸出 做題思路 實現 include 萬能標頭檔...