sweet1cris

Untitled

Jan 9th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.70 KB | None | 0 0
  1. public class Solution {
  2.     /**
  3.      * @param nums: A list of integers
  4.      * @return an integer
  5.      */
  6.     public int longestConsecutive(int[] nums) {
  7.         HashSet<Integer> set = new HashSet<>();
  8.         for (int i = 0; i < nums.length; i++) {
  9.             set.add(nums[i]);
  10.         }
  11.        
  12.         int longest = 0;
  13.         for (int i = 0; i < nums.length; i++) {
  14.             int down = nums[i] - 1;
  15.             while (set.contains(down)) {
  16.                 set.remove(down);
  17.                 down--;
  18.             }
  19.            
  20.             int up = nums[i] + 1;
  21.             while (set.contains(up)) {
  22.                 set.remove(up);
  23.                 up++;
  24.             }
  25.            
  26.             longest = Math.max(longest, up - down - 1);
  27.         }
  28.        
  29.         return longest;
  30.     }
  31. }
  32.  
  33. // version: 高频题班
  34. public class Solution {
  35.     /**
  36.      * @param nums: A list of integers
  37.      * @return an integer
  38.      */
  39.     public int longestConsecutive(int[] num) {
  40.         // write you code here
  41.         Set<Integer> set = new HashSet<>();
  42.         for (int item : num) {
  43.             set.add(item);
  44.         }
  45.  
  46.         int ans = 0;
  47.         for (int item : num) {
  48.             if (set.contains(item)) {
  49.                 set.remove(item);
  50.  
  51.                 int pre = item - 1;
  52.                 int next = item + 1;
  53.                 while (set.contains(pre)) {
  54.                     set.remove(pre);
  55.                     pre--;
  56.                 }
  57.                 while (set.contains(next)) {
  58.                     set.remove(next);
  59.                     next++;
  60.                 }
  61.                 ans = Math.max(ans, next - pre - 1);
  62.             }
  63.         }
  64.         return ans;
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment