剑指 Offer
文章平均质量分 74
呦柚子
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 03. 数组中重复的数字
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 100000方法一:哈希表 / Set利用数据结构特点,容易想到使用哈希表(Set)记录数组的各个数字,当查找到重复数字则直接返回。算...原创 2021-08-07 15:30:24 · 194 阅读 · 0 评论 -
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums =[1,2,3,4]输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。提示:0 <= nums.length <= 50000 1 <= nums[i] <= 10000class Solution { public int[] exchange(int[] nums) { .原创 2021-07-30 17:47:21 · 67 阅读 · 0 评论 -
剑指 Offer 56 - I. 数组中数字出现的次数
一个整型数组nums里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例 2:输入:nums = [1,2,10,4,1,4,3,3]输出:[2,10] 或 [10,2]限制:2 <= nums.length <= 10000...原创 2021-07-30 17:13:30 · 97 阅读 · 0 评论 -
剑指 Offer 17. 打印从1到最大的n位数
输入数字n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]说明:用返回一个整数列表来代替打印 n 为正整数按照leetcode上的要求返回值,似乎并没有考虑到大数问题也就是n过大时,超出了数据在内存中的表示范围,并且要求返回值为 整数列表。方法一:根据题目要求,有以下几个问题:最大的 numMax位数和位数 n 的关系:..原创 2021-07-29 20:45:31 · 159 阅读 · 0 评论 -
剑指offer—03
剑指 Offer 03. 数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 100000class Solution { public int findRepeatNumber原创 2020-10-09 09:04:46 · 136 阅读 · 0 评论 -
剑指offer—04
剑指 Offer 04. 二维数组中的查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26,原创 2020-10-09 09:00:21 · 66 阅读 · 0 评论 -
剑指offer—06
剑指 Offer 06. 从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int原创 2020-10-12 08:56:37 · 129 阅读 · 0 评论 -
剑指offer—05
剑指 Offer 05. 替换空格请实现一个函数,把字符串s中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."限制:0 <= s 的长度 <= 10000class Solution { public String replaceSpace(String s) { //声明替换后字符串的存储位置 StringBuilder s_new = ne..原创 2020-10-10 09:19:53 · 145 阅读 · 0 评论 -
剑指 Offer 29. 顺时针打印矩阵
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix =[[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 100 0 <= matrix[i].length..原创 2021-07-14 22:16:47 · 73 阅读 · 0 评论