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

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

 
🔗
 楼主| love1point 2015-6-4 09:45:05 | 只看该作者
全局:

多谢支持哈。。
回复

使用道具 举报

🔗
 楼主| love1point 2015-6-4 10:14:19 | 只看该作者
全局:
本帖最后由 love1point 于 2015-6-17 17:08 编辑

Kth largest element in an array: https://leetcode.com/problems/kth-largest-element-in-an-array/
idea: 估计次方法面试官不让过吧
  1. public class Solution {
  2.     public int findKthLargest(int[] nums, int k) {
  3.         Arrays.sort(nums);
  4.         
  5.         return nums[nums.length - k];
  6.     }
  7. }
复制代码
回复

使用道具 举报

🔗
amyzen 2015-6-4 10:22:11 | 只看该作者
全局:
建议LZ在1楼汇总一下 题目编号 分别在几楼 ,或者给个你的刷题顺序哈
方便大家定位到题目啦~~~

同在刷题,一起加油
回复

使用道具 举报

🔗
 楼主| love1point 2015-6-4 11:36:47 | 只看该作者
全局:
amyzen 发表于 2015-6-4 10:22
建议LZ在1楼汇总一下 题目编号 分别在几楼 ,或者给个你的刷题顺序哈
方便大家定位到题目啦~~~

谢谢你的建议哈。

但是我很懒啊,平时就不爱整理房间等,上课的笔记也是乱糟糟的哈。

我刷题没顺序哈,看到哪个公司面了啥题我就做了啥题或者看到哪个题就做了。

回复

使用道具 举报

🔗
 楼主| love1point 2015-6-4 12:15:01 | 只看该作者
全局:
本帖最后由 love1point 于 2015-6-17 17:10 编辑

House robber:  https://leetcode.com/problems/house-robber/
idea: 此代码非常容易记下了,分奇偶性处理
  1. public class Solution {
  2.     public int rob(int[] nums) {
  3.         if(nums == null || nums.length == 0)
  4.         {
  5.             return 0;
  6.         }
  7.         
  8.         int even = 0;
  9.         int odd = 0;
  10.         
  11.         for(int i= 0; i < nums.length; i++)
  12.         {
  13.            if( i % 2 == 0)
  14.            {
  15.                 even = even + nums[i];
  16.                 even = even > odd ? even : odd;
  17.            }
  18.            else
  19.            {
  20.                odd = odd + nums[i];
  21.                odd = even > odd ? even : odd;
  22.            }
  23.         }
  24.         return even > odd ? even : odd;
  25. }
  26. }
复制代码
回复

使用道具 举报

🔗
 楼主| love1point 2015-6-4 14:37:26 | 只看该作者
全局:
本帖最后由 love1point 于 2015-6-17 17:11 编辑

Number of 1 bits:  https://leetcode.com/problems/number-of-1-bits/
idea: 代码很容易记
  1. public class Solution {
  2.     // you need to treat n as an unsigned value
  3.     public int hammingWeight(int n) {
  4.         int result = 0;
  5.         for(int i = 0; i < 32; i++)
  6.         {
  7.             if(getBit(n, i))
  8.             {
  9.                 result++;
  10.             }
  11.         }
  12.         return result;
  13.     }
  14.    
  15.     public boolean getBit(int n, int i)
  16.     {
  17.         return (n & (1 << i)) != 0;
  18.     }
  19. }
复制代码
回复

使用道具 举报

🔗
 楼主| love1point 2015-6-4 16:05:21 | 只看该作者
全局:
本帖最后由 love1point 于 2015-6-17 17:12 编辑

Valid sudoku:  https://leetcode.com/problems/valid-sudoku/
idea: 此题很容易看懂和记忆
  1. public class Solution {
  2.     public boolean isValidSudoku(char[][] board) {
  3.         if(board == null || board.length == 0 || board[0].length == 0)
  4.         {
  5.             return false;
  6.         }
  7.         
  8.         for(int i = 0; i < 9; i++)
  9.         {
  10.             boolean[] m = new boolean[9];
  11.             for(int j = 0; j < 9; j++)
  12.             {
  13.                 if(board[i][j] != '.')
  14.                 {
  15.                     if(m[(int)(board[i][j] - '1')])
  16.                     {
  17.                         return false;
  18.                     }
  19.                     m[(int)(board[i][j] - '1')] = true;
  20.                     
  21.                 }
  22.             }
  23.         }
  24.         
  25.         for(int j = 0; j < 9; j++)
  26.         {
  27.             boolean[] m = new boolean[9];
  28.             for(int i = 0; i < 9; i++)
  29.             {
  30.                 if(board[i][j] != '.')
  31.                 {
  32.                     if(m[(int)(board[i][j] - '1')])
  33.                     {
  34.                         return false;
  35.                     }
  36.                     m[(int)(board[i][j] - '1')] = true;
  37.                     
  38.                 }
  39.             }
  40.         }
  41.         
  42.         for(int block = 0; block < 9; block++)
  43.         {
  44.             boolean[] m = new boolean[9];
  45.             for(int i = block/3*3; i < block/3*3+3; i++)
  46.             {
  47.                 for(int j = block%3*3; j < block%3*3+3; j++)
  48.                 {
  49.                     if(board[i][j] != '.')
  50.                     {
  51.                         if(m[(int)(board[i][j] - '1')])
  52.                         {
  53.                             return false;
  54.                         }
  55.                         m[(int)(board[i][j] - '1')] = true;
  56.                     }
  57.                 }
  58.             }
  59.         }
  60.         return true;
  61.     }
  62. }
复制代码
回复

使用道具 举报

🔗
 楼主| love1point 2015-6-4 17:46:41 | 只看该作者
全局:
本帖最后由 love1point 于 2015-6-22 17:26 编辑

Rotate array:  https://leetcode.com/problems/rotate-array/
idea: 此方法不好记忆

更新:其实还是很好理解和记忆的。首先把数组复制过来。然后分两段,小于K和大于k的。就是找规律了,用题目的例子的index来分析。
  1. public class Solution {
  2.     public void rotate(int[] nums, int k) {
  3.         if(k > nums.length)
  4.         {
  5.             k = k % nums.length;   
  6.         }
  7.         
  8.         int[] result = new int[nums.length];
  9.         for(int i = 0; i < nums.length; i++)
  10.         {
  11.             result[i] = nums[i];   
  12.         }
  13.         
  14.         for(int i = 0; i < k; i++)
  15.         {
  16.             nums[i] = result[nums.length - k + i];
  17.         }
  18.         
  19.         int j = 0;
  20.         for(int i = k; i < nums.length; i++)
  21.         {
  22.             nums[i] = result[j];
  23.             j++;
  24.         }
  25.     }
  26. }
复制代码
回复

使用道具 举报

🔗
 楼主| love1point 2015-6-4 18:06:19 | 只看该作者
全局:
本帖最后由 love1point 于 2015-6-17 17:14 编辑

Excel sheet column title:  https://leetcode.com/problems/excel-sheet-column-number/
idea: 好做
  1. public class Solution {
  2.     public String convertToTitle(int n) {
  3.         StringBuilder sb = new StringBuilder();
  4.         
  5.         while(n > 0)
  6.         {
  7.             n--;
  8.             char c = (char)(n%26 + 'A');
  9.             n = n / 26;
  10.             sb.append(c);
  11.         }
  12.         sb.reverse();
  13.         return sb.toString();
  14.     }
  15. }
复制代码
回复

使用道具 举报

🔗
 楼主| love1point 2015-6-4 20:49:27 | 只看该作者
全局:
本帖最后由 love1point 于 2015-6-17 17:15 编辑

Binary tree level order traversal ii:  https://leetcode.com/problems/bi ... order-traversal-ii/
idea: 此代码易懂易记
  1. public class Solution {
  2.     public ArrayList<ArrayList<Integer>> levelOrderBottom(TreeNode root) {
  3.         ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
  4.         
  5.         if(root == null)
  6.         {
  7.             return result;
  8.         }
  9.         
  10.         LinkedList<TreeNode> curr = new LinkedList<TreeNode>();
  11.         LinkedList<TreeNode> next = new LinkedList<TreeNode>();
  12.         curr.offer(root);
  13.         
  14.         ArrayList<Integer> numberList = new ArrayList<Integer>();
  15.         
  16.         while(!curr.isEmpty())
  17.         {
  18.             TreeNode head = curr.pop();
  19.             numberList.add(head.val);
  20.             
  21.             if(head.left != null)
  22.             {
  23.                 next.offer(head.left);
  24.             }
  25.             
  26.             if(head.right != null)
  27.             {
  28.                 next.offer(head.right);
  29.             }
  30.             
  31.             if(curr.isEmpty())
  32.             {
  33.                 curr = next;
  34.                 next = new LinkedList<TreeNode>();
  35.                 result.add(numberList);
  36.                 numberList = new ArrayList<Integer>();
  37.             }
  38.         }
  39.         
  40.         ArrayList<ArrayList<Integer>> reverseResult = new ArrayList<ArrayList<Integer>>();
  41.         for(int i = result.size()-1; i >= 0; i--)
  42.         {
  43.             reverseResult.add(result.get(i));
  44.         }
  45.         return reverseResult;
  46.     }
  47.     }
复制代码
回复

使用道具 举报

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

本版积分规则

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