30/09/2018, 18:17

Hỏi về cách xóa phần tử trong một mảng 1 chiều trong Java?

Anh chị cho em hỏi cho một mảng số nguyên. Hãy xóa tất cả các phần tử <=0 thì có hàm nào hay giúp em đưa ra ý tưởng để xóa các phần tử đó được không ạ?

Gió viết 20:23 ngày 30/09/2018

Ý tưởng:

  • sau khi bị xóa các phần tử đứng sau sẽ bị dịch lên trước đúng bằng tổng số phần tử đã bị xóa

VD: a: 1 -2 -3 4 -5 6
sau khi xóa: 1 4 6
số phần tử đã xóa trước đó: 0 2 3
chênh lệch chỉ số: 0(0-0) 2(3-1) 3(5-2)

function delete(a: int[],int len): int 
    deleted_count=0
    for i=0 to len-1
          if a[i]< 0 deleted_count+=1
          else :
                 a[i-deleted_count]=a[i]
    return len-deleted_count         // trả về kích thước mới của mảng
Bài liên quan
0