LeetCode 23. 移动零

时间:2022-07-23
本文章向大家介绍LeetCode 23. 移动零,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

A

23. 移动零

/**
 * [23. 移动零](https://leetcode-cn.com/problems/move-zeroes/)
 * 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
 * 输入: [0,1,0,3,12] 
 * 输出: [1,3,12,0,0]
 * 解释:将0移到最后,其余数字顺序不许改变。要在原数组上操作。
 * 1.统计0的个数,两个循环。
 * 2.双指针。从头遍历到尾。非0就放在前面。
 */
public class Solution {
    public void moveZeroes(int[] nums) {
        // i从前往后,所有数都遍历1遍。j记录非0数放置位置。
        for (int i = 0, j = 0; i < nums.length; i++) 
            if (nums[i] != 0) 
                // i 与 j索引上的值交换,且j自增
                nums[i] = nums[i] ^ nums[j] ^ (nums[j++] = nums[i]); 
    }
}

R

6 Habits of Super Learners

超级学习者的6大习惯

好的学习方法会使学习更加愉快。

1.读了很多书

​ 超级学习者啥都懂,上知天文地理,下知小道情报。

​ 读得越多,脑子越活。

​ 学习不是苦差,是改善生活。(无知是一切痛苦之源 - 尼采)

​ 埃隆马斯克一天两本书。比尔盖茨一年五百本。扎克伯格两周一本。沃伦巴菲特每天5份报纸和500页企业报告。

​ 信息时代,情报最重要。

2.学习是过程

​ 学习不是目的,是过程。

​ 学习是人生享受,自我主导,自我规划。

​ 学习需要观察力与好奇心。

​ 学习是投资。

​ 学习是不断完善,持续精进。

3.成长心态

​ 人是成长的,需要不断学习。

4.超级学习者教别人

​ 教别人可以记住知识的90%。

​ 通过叫别人学习,能快速发现学习漏洞。- 费曼学习法

​ 在费曼的传记中,费曼能够用简单的语言阐述复杂的物理定理。

​ 最佳学习模型是50%时间学,50%时间教。

5.高效学习者爱护大脑

​ 水果蔬菜坚果鱼肉橄榄油(其实就是地中海饮食)

​ 高GI食物很容易犯困

6.他们会休息

​ 研究表明,经常短暂的休息,能够更好的记住你要学的东西。

​ 不是不停地学练学练学练,而是学、休息、学、休息。

​ 更好的休息能巩固知识。

​ 大脑一次性能获取40个知识点,再多就负载了。

​ 大脑需要时间处理信息,所以间隔学习更有效。

T

Leetcode刷题技巧:

1.直接看答案,分析所有解法及各自时间复杂度

2.看完默写最优解,之后看国内国际版不断优化。

3.每道题目刷5遍。

S

无关技术,关于学习的思考。

  1. 学习前先“入定”,冥想放空一段时间,把情绪放下,再学习。
  2. 学习环境,如果是晚上,只开桌子的灯,房间的灯关闭。
  3. 快速学习,关注内容的框架。
  4. 学不懂没关系,先放着,复习的时候再看。
  5. 28法则,只学习其中你认为有用的20%的内容。其余80%内容不要去关注。
  6. 学习新内容累了,就复习之前的笔记,不断将笔记缩减,字越少越好。
  7. 做笔记不要复制粘贴。用自己的话表述记录下来,要精简。
  8. 做可视化的思维导图辅助记忆,回顾知识点。
  9. 重要记不住的内容可以打印整理出来。
  10. 学习最重要的是记住有用的东西。要把知识记录脑中。能够说出来。
  11. 笔记要清晰整洁易读。多配图。