摘要:
内部排序 插入排序 直接插入排序 插入排序的思想是,假定前面i个元素已经有序,然后针对于第i+1个元素,寻找第i+1个元素应该在的位置,插入,移动即可 没有哨兵的直接插入排序 public static void insertSort(int arr[]){ // 插入排序的思想是,假定前面i个元素 阅读全文
摘要:
链表 本来关于链表是不准备写这个的,但是呢由于lxj和zyj,还是写一下吧,嗨,人生真难。 写在最前,由于最近在刷leetcode,所以🌰一半是从leetcode中的习题得来 单链表 单链表的定义以及基本操作 // 单链表 class Test{ // 链表节点类 public static cl 阅读全文
摘要:
2.9 Fibonacci数列 序言 先看一下优美的Fibonacci螺旋曲线 画图代码 import turtle a, b = 0, 1 while a < 1000: turtle.circle(a, 90) a, b = b, a+b 基础问题 解法 解法1 : 递归 解法2 : 求解通项公 阅读全文
摘要:
mov2gif MacBook Pro将QuickTime Player录制的屏幕录像mov转换成为gif图像格式 方法一 利用ffmpeg 安装 brew install node brew install ffmpeg ffmpeg -i 1.mov 2.gif 结果 方法二 利用gifify 阅读全文
摘要:
2.4 1的数目 基础问题 写一个函数$f(N)$, 返回1到N之间出现的1的个数,比如$f(12) = 5$ 解法 解法1 暴力求解 直接遍历即可 解法2 通过分析小于n的数在每一位上可能出现1的次数之和 // 2.4 1的数目 class Test{ public static void mai 阅读全文
摘要:
2.3 寻找发帖水王 基础问题 就是找到一个数组中超过一半的数字 解法: vote 投票法 sort 排序法 import java.util.Arrays; class Test{ public static void main(String[] args) { int[] arr = new i 阅读全文
摘要:
2.2 不要被阶乘吓倒 基本问题 1 给定一个正整数N,那么N的阶乘N! 末尾有多少个0呢? 在介绍解法之前,先介绍质因数分解 - 合数:合数是指在大于1的整数中除了能被1和本身整除外,还能被其他数(0除外)整除的数。 - 质数:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 阅读全文
摘要:
2.1 求二进制中1的个数 基础问题 对一个字节的变量,求其二进制表示中1的个数,要求算法的执行效率尽可能的高 // 求二进制中1的个数 // 对一个字节的变量,求其二进制表示中1的个数,要求算法的执行效率尽可能的高 class Test{ public static void main(Strin 阅读全文
摘要:
3.4 从无头链表中删除节点 基础问题 假设有一个没有头指针的单链表,一个指针指向中间的一个节点,不是第一个节点,也不是最后一个节点,删除该节点 扩展问题 给你一个链表,只遍历一次,在原地翻转链表 class Test{ public static class ListNode{ int val; 阅读全文
摘要:
3.3 计算字符串的相似度 给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 解法1 采用递归的方法进行计算 思想分析:重点是转化成为子问题的过程 s1[1,1 阅读全文