Java for LeetCode 220 Contains Duplicate III
2015-06-15 16:56
393 查看
Given an array of integers, find out whether there are two distinct indices i and j in the array such that the difference between nums[i] and nums[j] is at most t and the difference between i and j is at most k.
解题思路:
暴力枚举会LTE,解题思路是用sortedSet来解决,sortedSet可以返回一个在某个范围的subSet,同时判断这个subSet是否为空即可解决,主要,本题需要使用long类型!
JAVA实现如下:
解题思路:
暴力枚举会LTE,解题思路是用sortedSet来解决,sortedSet可以返回一个在某个范围的subSet,同时判断这个subSet是否为空即可解决,主要,本题需要使用long类型!
JAVA实现如下:
import java.util.*; public class Solution { public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) { if(nums==null || nums.length<2||k<1 || t<0) return false; SortedSet<Long> set = new TreeSet<Long>(); for(int j=0; j<nums.length; j++) { SortedSet<Long> subSet = set.subSet((long)nums[j]-t, (long)nums[j]+t+1); if(!subSet.isEmpty()) return true; if(j>=k) set.remove((long)nums[j-k]); set.add((long)nums[j]); } return false; } }
相关文章推荐
- 网页动物园2.0发布,经过几个月的努力,采用JAVA编写!
- LeetCode_32---Longest Valid Parentheses
- eclipse中格式化代码快捷键Ctrl+Shift+F失效
- java中static作用详解
- eclipse的build path
- JAVA基础(一)
- eclipse上的java编程助手软件的使用与配置
- java 后台开发流程
- Java通配符<?>
- java io
- java将阿拉伯数字转化为罗马数字 I II III IV V VI
- Java弱智错误
- 解析Java中的String对象的数据类型
- Java根据sessionId获取Session对象
- Spring注解式事务管理
- Struts2工作原理
- springMvc 中 Excel批量数据上传,利用POI解析数据保存入数据库 及模板文件下载
- 转移到java下工作
- struts1的工作原理
- java -jar 报错,classnotfound