前言:这道题以前用c做过,当时为了考研复试,拼命的刷算法题,现在再次碰到这个题,心里五味陈杂,既然以前使用c写的,那这次就换java吧
我的思路:上图中的数组【0,0,1,1,1,2,2,3,3,4】,res为返回数组的长度,初始值为0,i为数组下标,i从1开始遍历,如果下标为i的值等于下标为res的值,则继续遍历,当nums[ i ]不等于nums[ res ] 时,res的下一位等于nums[ i ],res++,继续遍历,知道遍历到最后一位,返回结果res需要加1,因为我们的初始值是从0开始的。
特殊情况:当数组长度为0或1是,直接返回数组的长度。
我的代码:
原文:https://www.cnblogs.com/youshou/p/14673183.html