剑指 Offer 56 - II. 数组中数字出现的次数 II Offer_56_2 题目详情 解题思路 java代码 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2/10 13:43 */ /** * 题目描述:在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次.请找出那个只出现一次的数字. */ public class Offer_56_2 { public int sing…
题目描述 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次.请找出那个只出现一次的数字. 示例1: 输入:nums = [3,4,3,3] 输出:4 示例2: 输入:nums = [9,1,7,9,7,9,7] 输出:1 限制: 1 <= nums.length <= 10000 1 <= nums[i] < 2^31 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi…
Leetcode 137. 只出现一次的数字 II - 题解 137. Single Number II 在线提交: https://leetcode.com/problems/single-number-ii/ 题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,3,2] 输出: 3 示例 2: 输入: [0,1,0,1,0,1…
137. 只出现一次的数字 II(剑指offer 56-II) 知识点:哈希表:位运算 题目描述 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 .请你找出并返回那个只出现了一次的元素. 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 输入:nums = [2,2,3,2] 输出:3 输入:nums = [0,1,0,1,0,1,99] 输出:99 解法一:HashMap 和136题一样,使用哈希表存储每个数字出现的数字,再遍历哈希表…
剑指 Offer 56 - I. 数组中数字出现的次数 Offer_56_1 题目描述 解题思路 java代码 /** * 方法一:数位方法 */ class Offer_56_1_2 { public int[] singleNumbers(int[] nums) { int ans = 0; for(int num : nums){ ans^=num; } int pos = 1; while((pos & ans) == 0){ pos<<=1; } int a=0, b=0;…
[简单-剑指 Offer 53 - II. 0-n-1中缺失的数字] 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内.在范围0-n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字. 示例 1: 输入: [0,1,3] 输出: 2 示例 2: 输入: [0,1,2,3,4,5,6,7,9] 输出: 8 限制: 1 <= 数组长度 <= 10000 方法1:遍历数组,在遍历的过程中比较数组下标与数值是否相同,不相同则输出下标即可. class…
剑指 Offer 53 - II. 0-n-1中缺失的数字 Offer_53 题目详情 java代码 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2/9 20:33 */ /** * 题目详情:一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内. * 在范围0-n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字. */ public class Of…
题目 剑指 Offer 53 - II. 0-n-1中缺失的数字 思路1 排序数组找数字使用二分法 通过题目,我们可以得到一个规律: 如果数组的索引值和该位置的值相等,说明还未缺失数字 一旦不相等了,从左到右第一个不相等位置的索引值就是缺失的数字的值 所以我们使用二分法查找第一个索引值和数组的值不相等的位置,此时索引值就是我们要的结果了 如果没有缺失,就输出数组的长度 代码 class Solution { public int missingNumber(int[] nums) { int l…
137. 只出现一次的数字 II 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,3,2] 输出: 3 示例 2: 输入: [0,1,0,1,0,1,99] 输出: 99 PS: 对每一位单独统计出现1的次数, 如果出现的次数不能整除3说明唯一存在的数在这一位上为1, 时间复杂度O(32N) class Solution { publi…
由于这道题目在牛客上没有,所以在此记录一下. 一.题目大意: 数字以0123456789101112131415…的格式序列化到一个字符序列中.在这个序列中,第5位(从0开始计数,即从第0位开始)是5,第13位是1,第19位是4,等等.请写一个函数,求任意第n位对应的数字. 二.题解<剑指offer>上提供了两种思路. 方法1: 第一种思路是:从0开始枚举每个数字.每枚举一个数字的时候,求出该数字是几位(如15是2位数.9323是4位数),并把该数字的位数和前面所有数字的位数累加.如果位数之和…