剑指offer
fxyi
这个作者很懒,什么都没留下…
展开
-
《剑指offer》面试题5:替换空格(JavaScript)
目录题目方法一:利用 JS 原生方法分析代码 欢迎并且感谢交流区探讨和指正 题目 请实现一个函数,把字符串 s 中的每个空格替换成 “%20” 方法一:利用 JS 原生方法 分析 用 JS 来解这道题的话,两个 String 和 Array 的原生函数就能解决,So easy 如果考虑到字符串中有多个空格,其实也是可以的 比如说,“hello world hh” 字符串中,hello 和 world 之间有两个空格,那么 split 函数就会把字符串转化成数组:[ “hello”, “”, “worl原创 2020-10-13 23:21:53 · 141 阅读 · 0 评论 -
《剑指offer》面试题4:二维数组中的查找(JavaScript)
目录题目方法一:线性法(最优解)分析代码方法二:穷举法分析代码 欢迎并且感谢交流区探讨和指正 题目 方法一:线性法(最优解) 时间复杂度:O(n) 空间复杂度:O(1) 分析 在这个二维数组,或者说矩阵里,每个数都符合一个规律 就是它比它所在行左边所有的数大,比它所在列下面的所有数小 所以可以用类似二分的思想 代码 方法二:穷举法 时间复杂度:O(n²) 空间复杂度:O(1) 分析 代码 ...原创 2020-10-13 23:05:05 · 124 阅读 · 0 评论 -
《剑指offer》面试题3:数组中重复的数字(JavaScript)
目录题目方法一:遍历交换法(最优解)分析代码方法二:哈希表法分析代码 题目 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。 数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。 请找出数组中任意一个重复的数字。 输入:[2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 方法一:遍历交换法(最优解) 时间复杂度:O(n) 空间复杂度:O(1) 分析 首先要明确一个事,输入数组 nums 的长度为 n,数组下标为 0 到 n-1 若数组中原创 2020-09-10 21:26:40 · 124 阅读 · 0 评论 -
《剑指offer》面试题21:调整数组顺序使奇数位于偶数前面(Java)
题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 示例 输入:nums =[1,2,3,4] 输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。 方法一:用两个数组分别存储奇数和偶数,然后再拼接返回 public int[] exchange(int[] nums) { A...原创 2020-03-03 19:00:43 · 71 阅读 · 0 评论 -
《剑指offer》面试题3:数组中重复的数字(Java)
题目 在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 解法一:最好的解法 首先要明确一个事,数组长度为n,数组下标为0到n-1。 若数组中没有重复数字,将数组排序,数组中存储的...原创 2019-12-09 22:51:20 · 120 阅读 · 0 评论