[leetCode刷题笔记]2017.03.23
来源:互联网 发布:如何管理淘宝店铺 编辑:程序博客网 时间:2024/05/15 03:32
164. Maximum Gap
用桶排序的方法做。注意两个具有最大间距的两个数肯定不在一个桶。
public class Solution { public int maximumGap(int[] nums) { if (nums == null || nums.length < 2) { return 0; } int min = nums[0]; int max = nums[0]; for (int i:nums) { min = Math.min(min, i); max = Math.max(max, i); } int gap = (int)Math.ceil((double)(max - min)/(nums.length - 1)); int[] bmin = new int[nums.length - 1]; int[] bmax = new int[nums.length - 1]; Arrays.fill(bmin, Integer.MAX_VALUE); Arrays.fill(bmax, Integer.MIN_VALUE); for (int i:nums) { if (i == min || i == max) { continue; } int index = (i - min) / gap; bmin[index] = Math.min(i, bmin[index]); bmax[index] = Math.max(i, bmax[index]); } int maxgap = Integer.MIN_VALUE; int previous = min; for (int i = 0; i < nums.length - 1; i++) { if (bmax[i] == Integer.MIN_VALUE && bmin[i] == Integer.MAX_VALUE) { continue; } maxgap = Math.max(maxgap, bmin[i] - previous); previous = bmax[i]; } maxgap = Math.max(maxgap, max - previous); return maxgap; }}
242. Valid Anagram
public class Solution { public boolean isAnagram(String s, String t) { if(s==null||t==null||s.length()!=t.length()) return false; if (s.equals(t)) { return true; } int[] charset = new int[26]; for (int i = 0; i < s.length(); i++) { charset[s.charAt(i) - 'a']++; charset[t.charAt(i) - 'a']--; } for (int i:charset) { if (i != 0) { return false; } } return true; }}
179. Largest Number
这道题主要是修改比较器,直观的表示就是比较两个数谁当另外一个前缀得到的组合数比较大。
public class Solution { public String largestNumber(int[] nums) { if(nums == null || nums.length == 0) return ""; String[] arr = new String[nums.length]; for(int i = 0; i < nums.length; i++) arr[i] = String.valueOf(nums[i]); Arrays.sort(arr, new Comparator<String>() { @Override public int compare(String s1, String s2) { String ss1 = s1 + s2; String ss2 = s2 + s1; return ss2.compareTo(ss1); } }); if(arr[0].charAt(0) == '0') return "0"; StringBuilder sbuilder = new StringBuilder(); for(String e : arr) { sbuilder.append(e); } return sbuilder.toString(); }}
0 0
- [leetCode刷题笔记]2017.03.23
- Leetcode刷题笔记
- LeetCode刷题笔记
- LeetCode刷题笔记
- leetcode刷题笔记
- [leetCode刷题笔记]2017.03.24
- [leetCode刷题笔记]2017.03.25
- [leetCode刷题笔记]2017.03.26
- [leetCode刷题笔记]2017.02.23
- [LeetCode] 刷题笔记(一)
- [LeetCode]刷题笔记二
- [leetCode]刷题笔记三
- LeetCode刷题笔记一
- LeetCode刷题笔记二
- LeetCode刷题笔记三
- [LeetCode刷题笔记] 关于LeetCode的前言
- leetCode刷题笔记(六)
- leetcode刷题笔记-two sum
- Servlet初步学习
- L2-006. 树的遍历
- 前端进阶(随手记)——函数的重载
- 使用百度编辑器ueditor表格无法显示边框以及边框颜色等系列问题解决方案
- lua类型详解
- [leetCode刷题笔记]2017.03.23
- 手机的键盘是这样的: 1 2 abc 3 def 4 ghi 5 jkl 6 mno 7 pqrs 8 tuv 9 wxyz * 0 #
- 数据挖掘-目录-降维(Dimensionality Reduction)
- WebGL通过鼠标点击绘点
- EJB基础
- Android学习之分析代码&巩固基础
- string的erase方法, 第一次见, 没什么好说的
- C++ 智能指针
- ACM/ICPC Java高精度计算