广东品牌网站建设报价,江门市华企立方科技有限公司,广告设计与制作专业技能,深圳关键词推广leetcode 150道题 计划花两个月时候刷完之未完成后转#xff0c;今天#xff08;第2天#xff09;完成了3道(105-107)150
105.#xff08;191. 位1的个数#xff09;题目描述#xff1a;
编写一个函数#xff0c;输入是一个无符号整数#xff08;以二进制串的形式今天第2天完成了3道(105-107)150
105.191. 位1的个数题目描述
编写一个函数输入是一个无符号整数以二进制串的形式返回其二进制表达式中数字位数为 1 的个数也被称为汉明重量。第一版还是位 遍历位 就行还可以用 java api Integer.bitCount(n)
public class Solution {// you need to treat n as an unsigned valuepublic int hammingWeight(int n) {int count0;for(int i0;i32;i){if((n1)1){count;}nn1;}return count;}
}106.(136. 只出现一次的数字) 题目描述
给你一个 非空 整数数组 nums 除了某个元素只出现一次以外其余每个元素均出现两次。找出那个只出现了一次的元素。
你必须设计并实现线性时间复杂度的算法来解决此问题且该算法只使用常量额外空间。第一版这个题我印象深刻异或 异或有交换律 并且 一样的数 异或后结果为 0
class Solution {public int singleNumber(int[] nums) {int res0;for(int num:nums){res^num;}return res;}
}第二版是看了 107 题后去试了一下真的是模板
class Solution {public int singleNumber(int[] nums) {int res0;for(int i0;i32;i){int count0;for(int num:nums){count(numi)1;}if(count%2!0){res|(1i);}}return res;}
}107.137. 只出现一次的数字 II题目描述
给你一个整数数组 nums 除某个元素仅出现 一次 外其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。
你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。第一版模板来了。。感觉可以秒杀这一类题
class Solution {public int singleNumber(int[] nums) {// 模板题有数组 其他数字出现 n 次 其中有一个出现一次求这个数// 题目中其他数字出现次数int n3;int res0;for(int i0;i32;i){int count0;for(int num:nums){count(numi)1;}// count 是 n 的倍数时候 表示 出现一次的这个数这一位i 位为0//不是 倍数时候 表示出现一次的这个数这一位i 位 为 1if(count%n!0){res|(1i);}}return res;}
}今天算是学了个这个 求其他数字出现相同多次 但是有一个出现一次的题型模板吧收获不小