[leetCode刷题笔记]2017.04.04
来源:互联网 发布:怎样永久保存数据 编辑:程序博客网 时间:2024/04/28 05:14
67. Add Binary
真不知道String builder还有reverse方法。。。本来都准备用Stack了。。。
public class Solution { public String addBinary(String a, String b) { StringBuilder sb = new StringBuilder(); int i = a.length() - 1, j = b.length() - 1, promote = 0; while (i >=0 || j >= 0) { int sum = promote; if (i >= 0) sum += a.charAt(i--) - '0'; if (j >= 0) sum += b.charAt(j--) - '0'; sb.append(sum % 2); promote = sum / 2; } if (promote != 0) sb.append(promote); return sb.reverse().toString(); }}
149. Max Points on a Line
这道题没有AC,因为double对这个test case:
[[0,0],[94911151,94911150],[94911152,94911151]]精度不够。
比较好的方法是产生最大公约数,再用x 和y一起作为key。
/** * Definition for a point. * 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.length <= 1) { return points.length; } int max = 0; for (int i = 0; i < points.length - 1; i++) { int dup = 1; Map<Double, Integer> pointMap = new HashMap<Double, Integer>(); for (int j = 0; j < points.length; j++) { if(j==i) continue; if(points[i].y==points[j].y && points[i].x==points[j].x) { dup++; continue; } double grad = getGrad(points[i], points[j]); if (!pointMap.containsKey(grad)) { pointMap.put(grad, 1); } else { pointMap.put(grad, pointMap.get(grad) + 1); } } if (pointMap.size() == 0) max=max > dup ? max : dup; for (Double k : pointMap.keySet()) { max = max < pointMap.get(k) + dup ? pointMap.get(k) + dup: max; } } return max; } private double getGrad(Point a, Point b) { int xDiff = a.x - b.x; int yDiff = a.y - b.y; if (xDiff == 0) return Double.MAX_VALUE; return (double) yDiff / xDiff; } }
0 0
- [leetCode刷题笔记]2017.04.04
- Leetcode刷题笔记
- LeetCode刷题笔记
- LeetCode刷题笔记
- leetcode刷题笔记
- [leetCode刷题笔记]2017.04.01
- [leetCode刷题笔记]2017.04.02
- [leetCode刷题笔记]2017.04.03
- [leetCode刷题笔记]2017.04.07
- [leetCode刷题笔记]2017.04.08
- [leetCode刷题笔记]2017.04.10
- [leetCode刷题笔记]2017.04.11
- [leetCode刷题笔记]2017.04.12
- [leetCode刷题笔记]2017.04.13
- [leetCode刷题笔记]2017.04.14
- [leetCode刷题笔记]2017.04.15
- [leetCode刷题笔记]2017.04.16
- [leetCode刷题笔记]2017.04.17
- spring security控制权限的几种方法
- 五子棋(C语言版)
- Java中编译运行带包名和不带包名的HelloWorld
- tensorflow从入门到放弃---第一篇
- HashMap和Hashtable的区别
- [leetCode刷题笔记]2017.04.04
- JavaWeb学习笔记之动态代理
- Java学习之对象的创建过程与类加载
- 5+ App开发Native.js入门指南
- Matrix 设置位置
- 【OpenCV学习笔记】三十、轮廓特征属性及应用(七)—位置关系及轮廓匹配
- 蓝桥 历届试题 网络寻路
- Java利用BufferedWriter和BufferedReader读写文本文件
- 检测点2.1