楼主: love1point
跳转到指定楼层
上一主题 下一主题
收起左侧

Leetcode 刷题记录!!!不信自己今年找不到工作!!!

 
🔗
 楼主| love1point 2015-6-2 20:33:29 | 只看该作者
全局:
本帖最后由 love1point 于 2015-6-17 16:59 编辑

Contains duplicate ii:  https://leetcode.com/problems/contains-duplicate-ii/
idea: 比上面一题稍微难了点,用到hashmap这个数据结构

  1. public class Solution {
  2.     public boolean containsNearbyDuplicate(int[] nums, int k) {
  3.         HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
  4.         int min = Integer.MAX_VALUE;
  5.         
  6.         for(int i =0; i < nums.length; i++)
  7.         {
  8.             if(map.containsKey(nums))
  9.             {
  10.                 int index = map.get(nums);
  11.                 int diff = i - index;
  12.                 min = Math.min(min, diff);
  13.             }
  14.             map.put(nums, i);
  15.         }
  16.         if(min <= k)
  17.         {
  18.             return true;
  19.         }
  20.         else
  21.         {
  22.             return false;
  23.         }
  24.     }
  25. }
复制代码
回复

使用道具 举报

🔗
markunit 2015-6-2 21:58:12 | 只看该作者
全局:
支持楼主,祝早日找到Dream Job,加油!
回复

使用道具 举报

🔗
 楼主| love1point 2015-6-2 22:15:20 | 只看该作者
全局:
markunit 发表于 2015-6-2 21:58
支持楼主,祝早日找到Dream Job,加油!

多谢支持啊
回复

使用道具 举报

🔗
kevinking813 2015-6-2 23:25:39 | 只看该作者
全局:
加油 LZ还是弄个git吧  这样不嫌乱么。。
回复

使用道具 举报

🔗
 楼主| love1point 2015-6-3 07:18:36 | 只看该作者
全局:
kevinking813 发表于 2015-6-2 23:25
加油 LZ还是弄个git吧  这样不嫌乱么。。

嗯,但是直接放在一亩三分地更多人可得的啊。放github 链接可能没那么多人可以看到
谢谢你的建议
回复

使用道具 举报

🔗
 楼主| love1point 2015-6-3 07:20:09 | 只看该作者
全局:
本帖最后由 love1point 于 2015-6-3 14:02 编辑

重复提交了一道题,已删
回复

使用道具 举报

🔗
hit_piggy 2015-6-3 07:39:46 | 只看该作者
全局:
这里好像有贴代码的这个功能,这样代码看起来比较清楚
回复

使用道具 举报

🔗
 楼主| love1point 2015-6-3 09:04:39 | 只看该作者
全局:
本帖最后由 love1point 于 2015-6-17 17:02 编辑

Intersections of two linked lists: https://leetcode.com/problems/intersection-of-two-linked-lists/
idea: 要判断哪个链表长

  1. public class Solution {
  2.     public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
  3.         ListNode p1 = headA;
  4.         ListNode p2 = headB;
  5.         
  6.         int len1 = 0;
  7.         int len2 = 0;
  8.         
  9.         while(p1 != null)
  10.         {
  11.             len1++;
  12.             p1 = p1.next;
  13.         }
  14.         
  15.         while(p2 != null)
  16.         {
  17.             len2++;
  18.             p2 = p2.next;
  19.         }
  20.         
  21.         int diff = 0;
  22.         int i = 0;
  23.         p1 = headA;
  24.         p2 = headB;
  25.         
  26.         if(len1 > len2)
  27.         {
  28.             diff = len1-len2;
  29.             while(i < diff)
  30.             {
  31.                 i++;
  32.                 p1 = p1.next;
  33.             }
  34.         }
  35.         else
  36.         {
  37.             diff = len2-len1;
  38.             while(i < diff)
  39.             {
  40.                 i++;
  41.                 p2 = p2.next;
  42.             }
  43.         }
  44.         
  45.         while(p1 != null && p2 != null)
  46.         {
  47.             if(p1.val == p2.val)
  48.             {
  49.                 return p1;
  50.             }
  51.             else
  52.             {
  53.                 p1 = p1.next;
  54.                 p2 = p2.next;
  55.             }
  56.         }
  57.         return null;
  58.     }
  59. }
复制代码
回复

使用道具 举报

🔗
 楼主| love1point 2015-6-3 09:06:23 | 只看该作者
全局:
hit_piggy 发表于 2015-6-3 07:39
这里好像有贴代码的这个功能,这样代码看起来比较清楚

谢谢,我才知道,我刚用了 : )
回复

使用道具 举报

🔗
 楼主| love1point 2015-6-3 10:27:36 | 只看该作者
全局:
本帖最后由 love1point 于 2015-6-17 17:03 编辑

Happy Number:  https://leetcode.com/problems/happy-number/
idea:  题目容易理解,但实现起来有一点点难度。不过,做过一遍下次就会了
  1. public class Solution {
  2.     public boolean isHappy(int n) {
  3.         ArrayList<Integer> arr = new ArrayList<Integer>();
  4.         while(!arr.contains(n))
  5.         {
  6.             arr.add(n);
  7.             n = getSum(getDigits(n));
  8.             if( n == 1)
  9.             {
  10.                 return true;
  11.             }
  12.         }
  13.         return false;
  14.         }
  15.         
  16.         public int getSum(int[] arr)
  17.         {
  18.             int sum = 0;
  19.             for(int i = 0; i < arr.length; i++)
  20.             {
  21.                 sum = sum + arr[i]*arr[i];
  22.             }
  23.             return sum;
  24.         }
  25.         
  26.         public int[] getDigits(int n)
  27.         {
  28.             String s = String.valueOf(n);
  29.             int[] result = new int[s.length()];
  30.             
  31.             for(int i = 0; i < s.length(); i++)
  32.             {
  33.                 int m = n % 10;
  34.                 result[i] = m;   
  35.                 n = n / 10;
  36.             }
  37.             return result;
  38.         }
  39.         
  40.     }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表