• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
neverlandly
博客园    首页    新随笔    联系   管理    订阅  订阅

Leetcode: Remove Elements

Given an array and a value, remove all instances of that value in place and return the new length.

The order of elements can be changed. It doesn't matter what you leave beyond the new length.

一次性通过的,比较顺利,从读题到编写到检查到通过,14分50秒,我在不断进步中,相信经过一段时间联系,这种题可以一眼就写出来,不超过5分钟。

这道题应该说方法跟 Remove Duplicates from sorted Array挺类似的

My Solution: 

 1 public class Solution {
 2     public int removeElement(int[] A, int elem) {
 3         int count = 0;
 4         for(int i=0; i<A.length; i++){
 5             if(A[i] != elem){
 6                 A[count] = A[i];
 7                 count++;
 8             }
 9         }
10         return count;
11     }
12 }

再贴个另外两个人的solution,以便对照参考,比较优劣:

Solution 1: 这个想法有点曲折

 1 public class Solution {
 2     public int removeElement(int[] A, int elem) {
 3         // Start typing your Java solution below
 4         // DO NOT write main() function
 5         int i=0, j=A.length-1;
 6         
 7         while(i<=j){
 8             if(A[i]==elem)
 9                 swap(A,i,j--);
10             else 
11                 i++;
12         }
13         return j+1;
14     }
15     
16     public void swap(int[] A,int i, int j){
17         int temp = A[i];
18         A[i] = A[j];
19         A[j] = temp;
20     }
21 }

Solution 2: 跟我的想法一致

 1 public class RemoveElement {
 2     public int removeElement(int[] A, int elem) {
 3         // Start typing your Java solution below
 4         // DO NOT write main() function
 5         if (A.length == 0) {
 6             return 0;
 7         }
 8         int counter = 0;
 9         for (int i = 0; i < A.length; i++) {
10             if (A[i] != elem) {
11                 A[counter] = A[i];
12                 counter++;
13             }
14         }
15         return counter;
16 
17     }
18 }

 

posted @ 2014-05-01 23:02  neverlandly  阅读(949)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3