
letcode-c++
海绵Jemma
这个作者很懒,什么都没留下…
展开
-
【letcode-c++】283.移动零
题目让我们不能复制,只能在数组中交换移动。那么数组中的移动,比较方便的是前后两个元素交换,并且非零元素相对位置不变,那就考虑0和它后面的非0元素进行交换,进一步思考,除了单个0移动,还可以将多个0 聚集成一个串,通过两个指针分别指向串的开头和结尾,然后就可以将这个串作为一个整体跟后面的非0元素交换,这样可以减少交换次数。原创 2024-08-07 22:41:45 · 195 阅读 · 0 评论 -
【letcod-c++】128.最长连续序列
set、mulltiset、unordered_set的区别: unordered_set: 底层是哈希,所以顺序是乱的由哈希函数决定,但查找效率高 mulriset和set:底层都是红黑树,插入时自动排序(默认按从小到大,也可以通过仿函数指定排序规则),适用于有序操作。这两个的区别是set自动去重,而multiset允许出现重复元素。 那么这一题如果能够元素排好序只需要通过前后两个元素的差值是否为1就可以判断是否连续,而且根据第二个例子,出现重复的元素时只能算一个,所以需要去重,那么综合原创 2024-08-06 23:47:29 · 215 阅读 · 0 评论 -
【letcode-c++】242有效的字母异位词与49字母异位词分组
哈希的优势是可以实现快速查找,它非常适合应用与查找某一个元素是否在一个集合中出现。哈希有三种实现形式:1. 数组: 一般应用于要查找的元素只有一个,且连续且值不是很多的情况,比如这一题,要匹配的是26个字母,ASCII码是连续的,那就非常适合使用哈希数组 2. set: 一般应用于要查找的元素只有一个,但值比较分散且很多的情况,3. map:一般应用于要关注的元素有两个,比如 49题原创 2024-08-03 16:14:23 · 361 阅读 · 0 评论