Golang,C++,Java三種語言的簡單對比


1.概述

    Golang、C++、Java三種語言在解決一個簡單算法中進行性能對比。

    題目:

      給你一個數組 nums 和一個值 val,你需要 原地 移除所有數值等於 val 的元素,並返回移除后數組的新長度。

      不要使用額外的數組空間,你必須僅使用 O(1) 額外空間並 原地 修改輸入數組。

      元素的順序可以改變。你不需要考慮數組中超出新長度后面的元素。

      示例 1:

      給定 nums = [3,2,2,3], val = 3,

      函數應該返回新的長度 2, 並且 nums 中的前兩個元素均為 2。

      你不需要考慮數組中超出新長度后面的元素。

2.解法

2.1 Java

 1 class Solution {
 2     public int removeElement(int[] nums, int val) {
 3         int  i = 0;
 4         int  n = nums.length;
 5         while (i < n){
 6             if(nums[i] == val){
 7                 nums[i] = nums[n-1];
 8                 n--;
 9             }else{
10                 i++;
11             }
12         }
13         return i;
14 
15     }
16 }

 

2.2 C++

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int i =0;
        int n = nums.size();
        while(i<n){
            if(nums[i] == val){
                nums[i] = nums[n-1];
                n--;
            }else{
                i++;
            }
        }
        return i;
    }
};

 

 

2.3 Golang

func removeElement(nums []int, val int) int {
    i := 0
    n := len(nums)

    for(i<n){
        if(nums[i] == val){
            nums[i] = nums[n-1]
            n--
        }else{
            i++
        }
    }
    return i
}

3.總結

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM