Descrição da pergunta
Dada uma matriz classificada, remova os elementos duplicados da matriz, mantenha apenas um elemento duplicado e retorne o novo comprimento da matriz.
Requer:
Não aloque espaço extra para a matriz, você deve usar o tamanho da memória da constante para operar no local.
Por exemplo:
Dada a matriz A = [1,1,2], sua chamada de função deve retornar o comprimento = 2 e agora se torna [1,2].
digitar
Uma matriz classificada, por exemplo [1,1,2].
Saída
Retorna o novo comprimento da matriz, por exemplo, comprimento = 2.
Método de ponteiro rápido e lento
Defina o ponteiro rápido para atravessar a matriz e o ponteiro lento para o próximo bit do elemento não repetido.
public static int removeduplicates (int [] nums) {if (nums.Length <1) retorna nums.Length; int lento = 1; para (int rápido = 1; rápido <nums.Length; Fast ++) {if (nums [Fast]! }} retornar lento;}Demonstração de animação:
Estendido
Remove elementos duplicados da matriz classificada, deixando o número especificado de dígitos.
public static int removeduplicatesn (int [] nums, int repeten) {if (nums.length <= repentn) retorna nums.Length; int index = repetição; para (int i = repetição; i <nums.Length; i ++) {if (nums [i]! = nums [index - repentn]) {nums [index ++] = nums [i]; }} Return Index;}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.