leetcode-leetCode上Easy级别题目求解

问题描述

leetCode上Easy级别题目求解

题目:
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
For example, Given input array A = [1,1,2],
Your function should return length = 2, and A is now [1,2].
大概意思就是去掉一个有序数组重复的元素。
我按照网上的答案运行了下,发现结果不对啊?下面是代码,求解惑
public class Solution {
public static int removeDuplicate(int[] nums){

      if(nums.length == 0 || nums.length == 1) {
          return nums.length;
      }
      int index=0, i=1;
      while(i<nums.length) {
          if(nums[index] == nums[i]) {
              i++;
          }else {
              nums[++index] = nums[i];
              i++;

          }
      }
      return ++index;
}

public static void main(String[] args){
    int[] nums = new int[]{1, 1, 2};
    System.out.println("---------------");
    int length = removeDuplicate(nums);
    System.out.println(length);
    System.out.println(Arrays.toString(nums));
}

}
运行结果为:
---------------
2
[1, 2, 2]
但是按照题目的要求,数组A不是应该变成[1,2]了么?求大神分析下吧,C币实在不多,求帮忙。

解决方案

我的理解,要么程序错了,要么是你对题目的理解错了
这个程序没有截断数组或者开辟新数组的功能
并且它返回结果的长度,所以我的理解这么做就是对的。
你最后System.out.println(Arrays.toString(nums));输出不对,应该是
for (int i = 0; i < length; i++) System.out.println(nums[i] + " ");

解决方案二:

如果返回的数组没有多余的元素,再返回长度就是多余。

时间: 2024-09-19 02:27:06

leetcode-leetCode上Easy级别题目求解的相关文章

c++ c 数组 vc++6 0-关于C++数组知识,在不同的平台上长度不一致,求解原因

问题描述 关于C++数组知识,在不同的平台上长度不一致,求解原因 #include#include#includeusing namespace std; int main(){ char ca[] = {'c''+''+'}; cout<<strlen(ca)<<endl; for(int i=0; i<strlen(ca); i++) cout<<ca[i]<<endl; system(""pause"");

数组 语言-简单的 素数筛选 刚刚入门计蒜客上的一个题目总过不了

问题描述 简单的 素数筛选 刚刚入门计蒜客上的一个题目总过不了 小度机器人最近正在添加功能,Robin希望小度机器人可以告诉他从1到N( 1 < N <= 10000)有多少个素数.请你来帮帮他吧? 输入包括一行,仅一个数字N. 输出在(1, N]区间内的所有的素数. 解决方案 http://www.cnblogs.com/wuzhenbo/archive/2012/04/26/2470357.html 解决方案二: 素数计算再简单不过了,当然你还是最好检查下你的程序.然后看看是不是性能的原因

技术-求问:这个sql语句有什么错误,放在Oracle Sql Developer上运行错误,求解

问题描述 求问:这个sql语句有什么错误,放在Oracle Sql Developer上运行错误,求解 "" select t3.dwnvl(t4.adhf0)nvl(t4.ayhf0)nvl(t4.azl0)nvl(t4.cdhf0)nvl(t4.cyhf0)nvl(t4.czl0)""+ from ""+ (select '便民中心' as dw from dual union select '纪委' as dw from dual unio

ie11-同一个网站模板在不同的IE11上显示不同,求解

问题描述 同一个网站模板在不同的IE11上显示不同,求解 在网站上下载了一个基于bootstrap的登陆界面,大家只要百度一下(bootstrap的登陆界面)就能发现,首先发下火狐的结果 然后顺便用IE11做下测试,看效果怎么样,我当时用的是网吧win7的IE11,效果是一模一样的.然后回到自己笔记本上的win8的ie11就发现变成这个样子 这到底是怎么回事,是ie11的设置问题么,如果是,该怎么做 解决方案 现在IE最高版本不是10吗?.. 做了下测试,IE10对bootstrap的兼容应该是

java源码-这个题目求解,没太看懂????

问题描述 这个题目求解,没太看懂???? ??求解啊,这个求源码,没大看懂??大神?????????????????????????????????? 解决方案 Scanner reader=new Scanner(System.in); String[] lines = scanner.nextLine().split("|"); for (int i = 0; i < lines.length(); i++) { String[] data = lines[i].split(

这是我在百度上找打demo 求解怎么加代码转换成城市位置阿 求解

问题描述 这是我在百度上找打demo 求解怎么加代码转换成城市位置阿 求解 package wonder.gzmap; import com.baidu.mapapi.BMapManager; import com.baidu.mapapi.GeoPoint; import com.baidu.mapapi.LocationListener; import com.baidu.mapapi.MKAddrInfo; import com.baidu.mapapi.MKBusLineResult;

c++-C++一道类的继承题目求解

问题描述 C++一道类的继承题目求解 设计一个用于图书管理的"图书"类Book 基本属性:title(书名),author(作者) 要求包含:构造函数.析构函数.拷贝构造函数."="函数及其他必要的成员函数 增加一个有声图书类AudioBook,该类继承自Book 基本属性: narrator(解说员) borrow_date(借阅时间):Date类对象 要求包含:构造函数.析构函数.拷贝构造函数."="函数及其他必要的成员函数 添加纸质图书Pa

合并-数据结构题目求解,实在不会,直接给结果也行

问题描述 数据结构题目求解,实在不会,直接给结果也行 对于以下等价类,采用"加权合并规则"(也 称"重量权衡合并规则"),进行并查运算,给出最后父结点索引序列. 6-8 7-6 7-4 9-0 5-8 1-6 3-9 0-2 2-7 注意:当合并大小相同的两棵树的时候,将第二棵树的根指向第一棵树的根:根结点的索引是它本身:数字之间用空格隔开 解决方案 http://zhidao.baidu.com/link?url=cevXv7An8pnTZApCCGD3jdOuq

88上的数学题目之二

在前面一个帖子中,我已经提出了一道来自88上的数学题目,所以这次是第二道来自88的数学题目.对于一个程序员来说,数学基础是非常重要的.所以我在浏览88时,特别关注数学题目的帖子. 问题:1/2*3/4*5/6........*99/100  和1/10哪个大? 下面是来自一个网友给出的解答,id我忘记了, 解答:另a=1/2*3/4...*99/100,                 b=2/3*4/5...100/100,            因为a*b=1/100,   并且a<b,因此