leetcode 关于数组的解题思路(java)

数组问题共性总结

最近作为一个废物程序员,在项目交替的空闲时间写了下力扣的题目。做了写数组相关的简单题(嗯,怀疑自己智商了,感觉很简单,动起手来各种问题)。
总结几个数组类型的技巧。
1.数组的操作,leetcode上是鼓励尽量在原数组上进行操作。都知道数组不可被扩容,元素的移动也很不方便。于是很多机智的小伙伴会转换为其他的数据结构再处理。嗯,如果实在有点懵,set集合,map()集合可以解决大部分问题。
2.for循环是解决问题的必须品,不行就再嵌套for循环。(开玩笑的),java里指针的概念用的比较少,因此小伙伴们遇到很多问题时喜欢双重for循环,这会加剧你的复杂度。试着用指针的概念去解决问题。
如下便是一个将所有为0的数,后移到最后的问题。leetcode 关于数组的解题思路(java)
这是原题链接
链接: 力扣-移动零
3.对于数组是否发生改变,使用**.size()**,比较原数组和现数组的长度即可解决。
4.虽然双重for循环很lower,但是其他方法也一般是在这之上简化的,太复杂的解法看不懂,可以写过for循环版,再精简,不是神仙是不可能第一次就写出最效率的写法的。