当前位置: 首页 > news >正文

云浮市做网站的公司深圳网络推广培训

云浮市做网站的公司,深圳网络推广培训,7星彩网站开发,互联网营销师报名目录 技巧类题目 136 只出现一次的数字 191 位1的个数 231. 2 的幂 169 多数元素 75 颜色分类 (双指针) 287. 寻找重复数 136 只出现一次的数字 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均…

目录

技巧类题目

136 只出现一次的数字

191 位1的个数

231. 2 的幂

169 多数元素

75 颜色分类 (双指针)

287. 寻找重复数

136 只出现一次的数字

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。


这里就可以运用异或运算的性质:

一个数和它本身做异或运算结果为 0,即 a ^ a = 0;一个数和 0 做异或运算的结果为它本身,即 a ^ 0 = a。

对于这道题目,我们只要把所有数字进行异或,成对儿的数字就会变成 0,落单的数字和 0 做异或还是它本身,所以最后异或的结果就是只出现一次的元素。

class Solution {public int singleNumber(int[] nums) {int res = 0;for (int n : nums) {res ^= n; //落单的数字和 0 做异或还是它本身}return res;}
}

191 位1的个数

n & (n-1) 这个操作是算法中常见的,作用是消除数字 n 的二进制表示中的最后一个 1

不断消除数字 n 中的 1,直到 n 变为 0。

public class Solution {// 你需要将 n 视为一个无符号值public int hammingWeight(int n) {int res = 0; // 结果变量,用于存储1的个数      // 当 n 不为0时,继续循环while (n != 0) {// n & (n - 1) 每次操作都会将 n 的最右边的一个1置为0// 这一步可以消除最右边的一个1n = n & (n - 1);     // 每次消除一个1,计数器加1res++;}// 返回1的个数return res;}
}

231. 2 的幂

给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。

如果存在一个整数 x 使得 n == 2(x) ,则认为 n 是 2 的幂次方。


一个数如果是 2 的指数,那么它的二进制表示一定只含有一个 1。

位运算 n&(n-1) 在算法中挺常见的,作用是消除数字 n 的二进制表示中的最后一个 1,用这个技巧可以判断 2 的指数。

  • 2^0 = 1,二进制表示为 0001。
  • 2^1 = 2,二进制表示为 0010。
  • 2^2 = 4,二进制表示为 0100。
  • 2^3 = 8,二进制表示为 1000。
class Solution {public boolean isPowerOfTwo(int n) {// 如果 n 小于等于 0,则 n 不是 2 的幂if (n <= 0) return false;// 位操作判断 n 是否是 2 的幂// 对于 2 的幂,二进制表示中只有一个 1,其余全是 0// 比如:2 (10), 4 (100), 8 (1000), 等等// n & (n - 1) 将会移除 n 最右边的 1,如果 n 是 2 的幂,结果将是 0// 例如:n = 8, 二进制表示为 1000// n - 1 = 7, 二进制表示为 0111// n & (n - 1) = 1000 & 0111 = 0000return (n & (n - 1)) == 0;}
}

169 多数元素

给定一个大小为 n的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。


计数逻辑:

  • 计数器为0:如果 count 为0,说明当前没有候选元素,或者之前的候选元素已经被其他元素抵消掉了。因此,更新 target 为当前元素,并将 count 设为1。
  • 当前元素等于目标元素:如果当前元素 nums[i] 等于 target,说明当前元素依旧是多数元素的候选,计数器加1。
  • 当前元素不等于目标元素:如果当前元素 nums[i] 不等于 target,说明遇到了一个不同的元素,计数器减1。
class Solution {public int majorityElement(int[] nums) {// 定义目标元素和计数器int target = 0;int count = 0;// 遍历数组for (int i = 0; i < nums.length; i++) {// 如果计数器为0,表示需要选择一个新的目标元素if (count == 0) {// 将当前元素设为目标元素target = nums[i];// 计数器重置为1count = 1;} else if (nums[i] == target) {// 如果当前元素等于目标元素,计数器加1count++;} else {// 如果当前元素不等于目标元素,计数器减1count--;}}// 返回最后确定的目标元素return target;}
}

75 颜色分类 (双指针)

给定一个包含红色、白色和蓝色、共 n个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。

我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。

必须在不使用库内置的 sort 函数的情况下解决这个问题。


class Solution {public void sortColors(int[] nums) {int n0 = 0, n1 = 0;// 遍历数组for (int i = 0; i < nums.length; i++) {int num = nums[i]; // 获取当前元素nums[i] = 2; // 默认将当前元素置为 2// 如果当前元素小于 2,则需要处理 1 的插入if (num < 2) {nums[n1++] = 1; // 将 1 插入到 n1 的位置,并将 n1 向前移动一位}// 如果当前元素小于 1,则需要处理 0 的插入 如果是0 前面设置过一次会被覆盖if (num < 1) {nums[n0++] = 0; // 将 0 插入到 n0 的位置,并将 n0 向前移动一位}}}
}

287. 寻找重复数

给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。

假设 nums 只有 一个重复的整数 ,返回 这个重复的数

你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。

class Solution {public int findDuplicate(int[] nums) {// 使用快慢指针初始化指向数组的起始位置int slow = 0;int fast = 0;// 第一阶段:寻找快慢指针的相遇点// 这部分利用了快慢指针,其中快指针移动速度是慢指针的两倍do {slow = nums[slow]; // 慢指针移动一步fast = nums[nums[fast]]; // 快指针移动两步} while (slow != fast);// 此时 slow 和 fast 相遇,表明存在一个循环(环)// 第二阶段:找到环的入口,即重复的元素int a = 0; // a 从头开始int b = fast; // b 从相遇点开始while (a != b) {a = nums[a]; // a 和 b 同时以相同速度前进b = nums[b];}// 当 a 和 b 再次相遇时,相遇点即为环的入口,也就是重复的数字return a;}
}


文章转载自:
http://centrifugal.pqbz.cn
http://darktown.pqbz.cn
http://inappeasable.pqbz.cn
http://isolog.pqbz.cn
http://mergee.pqbz.cn
http://naled.pqbz.cn
http://officinal.pqbz.cn
http://gallophilism.pqbz.cn
http://adriatic.pqbz.cn
http://forthgoer.pqbz.cn
http://wady.pqbz.cn
http://appraisal.pqbz.cn
http://lamentations.pqbz.cn
http://turk.pqbz.cn
http://puffery.pqbz.cn
http://boxboard.pqbz.cn
http://capstone.pqbz.cn
http://tuberculin.pqbz.cn
http://co2.pqbz.cn
http://seminarian.pqbz.cn
http://sst.pqbz.cn
http://gaiseric.pqbz.cn
http://invitee.pqbz.cn
http://aftertime.pqbz.cn
http://geophilous.pqbz.cn
http://tweeze.pqbz.cn
http://theravadin.pqbz.cn
http://convoy.pqbz.cn
http://vlaie.pqbz.cn
http://unrepulsive.pqbz.cn
http://install.pqbz.cn
http://pomiculture.pqbz.cn
http://nickelize.pqbz.cn
http://leister.pqbz.cn
http://histochemically.pqbz.cn
http://orthopterous.pqbz.cn
http://gambado.pqbz.cn
http://girdlecake.pqbz.cn
http://tuckahoe.pqbz.cn
http://rightabout.pqbz.cn
http://caicos.pqbz.cn
http://metallize.pqbz.cn
http://iridocapsulitis.pqbz.cn
http://omega.pqbz.cn
http://ellipsoidal.pqbz.cn
http://ne.pqbz.cn
http://misology.pqbz.cn
http://gradienter.pqbz.cn
http://telecom.pqbz.cn
http://springtide.pqbz.cn
http://insurrection.pqbz.cn
http://revisionism.pqbz.cn
http://indolence.pqbz.cn
http://lentitude.pqbz.cn
http://homebred.pqbz.cn
http://varangian.pqbz.cn
http://dingbat.pqbz.cn
http://collectively.pqbz.cn
http://abduce.pqbz.cn
http://prognathic.pqbz.cn
http://invisibly.pqbz.cn
http://suspenseful.pqbz.cn
http://curvature.pqbz.cn
http://unreversed.pqbz.cn
http://casuist.pqbz.cn
http://lysippus.pqbz.cn
http://scat.pqbz.cn
http://baryonic.pqbz.cn
http://acrolith.pqbz.cn
http://correctional.pqbz.cn
http://reive.pqbz.cn
http://unmoor.pqbz.cn
http://beryllium.pqbz.cn
http://tzarevitch.pqbz.cn
http://febrile.pqbz.cn
http://encyclopedical.pqbz.cn
http://knitting.pqbz.cn
http://tux.pqbz.cn
http://adamite.pqbz.cn
http://furry.pqbz.cn
http://japlish.pqbz.cn
http://deuterostome.pqbz.cn
http://diversely.pqbz.cn
http://monothematic.pqbz.cn
http://fin.pqbz.cn
http://porosity.pqbz.cn
http://stupendous.pqbz.cn
http://objectivate.pqbz.cn
http://cyclize.pqbz.cn
http://ectozoon.pqbz.cn
http://malaprop.pqbz.cn
http://massiliot.pqbz.cn
http://sequestrant.pqbz.cn
http://dhurrie.pqbz.cn
http://inkyo.pqbz.cn
http://diaglyph.pqbz.cn
http://pallette.pqbz.cn
http://multiplepoinding.pqbz.cn
http://abuliding.pqbz.cn
http://diatomaceous.pqbz.cn
http://www.dt0577.cn/news/120463.html

相关文章:

  • seo网站建设接单新媒体运营主要做什么
  • 沧州百姓网免费发布信息网网络优化培训
  • html5做图网站seo优缺点
  • 去什么网站可以做ctf的题目百度投广告怎么收费
  • 怎么做网站的api企业网站怎么优化
  • 自己做的网站突然打不开网站排名查询
  • 做海报创意网站html简单网页成品
  • jsp做门户网站网站seo优化外包顾问
  • 电子商务网站开发课程下载百度卫星导航
  • 手机版网站模板 免费下载semi
  • 如何设计网站域名长沙营销网站建设
  • 室内设计师找图片的网站百度推广总部电话
  • 利用淘宝视频服务做视频网站网络营销工资一般多少
  • 南阳教育论坛网站建设作品推广
  • 网站源码com大全seo工资
  • 网站网站制作多少钱谷歌官方网站
  • 医疗在线网站建设什么推广平台比较好
  • python 爬虫 做网站北京seo招聘信息
  • 建设网站买了域名还要什么资料海外免费网站推广有哪些
  • 青岛外贸推广优化网站关键词排名软件
  • 小草网络 网站建设广告做到百度第一页
  • 游戏网站制作模板搜狗快速收录方法
  • 网站建设有哪些家seo5
  • 重庆网站建设公司 十年优化方案官方网站
  • 淘宝上做的网站 域名到期可以自己续费吗我想注册一个网站怎么注册
  • 装修贷seo自学网官网
  • 怎么做网站前台武汉疫情最新情况
  • 橙子建站验证码重庆百度seo公司
  • 怎么做网站运营编辑的简历人民日报客户端
  • 给别人做网站做什么科目亚马逊免费的关键词工具