力扣-位运算-2【算法学习day.42】

server/2024/11/25 16:37:10/

前言

###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.2的幂

题目链接:231. 2 的幂 - 力扣(LeetCode)

题面:

代码:

java">class Solution {public boolean isPowerOfTwo(int n) {if(n<=0)return false;return ((n&(-n))==n?true:false);}
}

2.4的幂

题目链接:342. 4的幂 - 力扣(LeetCode)

题面:

代码:

java">class Solution {public boolean isPowerOfFour(int n) {if(n<=0)return false;if(((-n)&n)!=n)return false;int len = (int)(Math.log(n)/Math.log(2))+1;return ((len-1)%2==0);}
}

3.位1的个数

题目链接:191. 位1的个数 - 力扣(LeetCode)

题面:

代码:

java">class Solution {public int hammingWeight(int n) {int ans = 0;for(int i = n;i>0;i-=lowbit(i))ans++;return ans;}public int lowbit(int n){return (-n)&n;}
}

4.奇偶位数

题目链接:2595. 奇偶位数 - 力扣(LeetCode)

题面:

代码:

java">class Solution {public int[] evenOddBit(int n) {int[] ans = new int[2];int flag;for(int i = n;i>0;i-=flag){flag = lowbit(i);int len = (int)(Math.log(flag)/Math.log(2))+1;ans[(len-1)%2]++;} return ans;}public int lowbit(int n){return (-n)&n;}
}

5. 比特位计数

题目链接:338. 比特位计数 - 力扣(LeetCode)

题面:

代码:

java">class Solution {public int[] countBits(int n) {int[] ans = new int[n+1];for(int i = 0;i<=n;i++){ans[i]=Integer.bitCount(i);}return ans;}}

6.数组异或操作

题目链接:1486. 数组异或操作 - 力扣(LeetCode)

题面:

代码:

java">class Solution {public int xorOperation(int n, int start) {int[] arr = new int[n];int sum = start+2*0;for (int i = 1; i < n; i++) {sum=sum^(start+i*2);}return sum;}
}

7.解码异或后的数组

题目链接:1720. 解码异或后的数组 - 力扣(LeetCode)

题面:

代码:

java">class Solution {public int[] decode(int[] encoded, int first) {int n = encoded.length;int[] ans = new int[n+1];ans[0] = first;for(int i = 0;i<n;i++){ans[i+1] = first^encoded[i];first = ans[i+1];}return ans;}
}

8.找出前缀异或的原始数组

题目链接:2433. 找出前缀异或的原始数组 - 力扣(LeetCode)

题面:

代码:

java">class Solution {public int[] findArray(int[] pref) {int n = pref.length;int flag = pref[0];for(int i = 1;i<n;i++){pref[i] = pref[i]^flag;flag^=pref[i];}return pref;}
}

9.子数组异或查询

题目链接:1310. 子数组异或查询 - 力扣(LeetCode)

题面:

代码:

java">class Solution {public int[] xorQueries(int[] arr, int[][] queries) {int n = arr.length;for(int i = 1;i<n;i++){arr[i] = arr[i]^arr[i-1];}n = queries.length;int[] ans = new int[n];for(int i = 0;i<n;i++){if(queries[i][0]==0){ans[i] = arr[queries[i][1]];}else{ans[i] = arr[queries[i][1]]^arr[queries[i][0]-1];}}return ans;}
}

10.相邻值的安慰异或

题目链接:2683. 相邻值的按位异或 - 力扣(LeetCode)

题面:

代码:

java">class Solution {public boolean doesValidArrayExist(int[] derived) {int n = derived.length;int ans = derived[0];for(int i = 1;i<n;i++){ans^=derived[i];}return ans==0;}
}

后言

上面是力扣位运算专题,下一篇是其他的习题,希望有所帮助,一同进步,共勉!


http://www.ppmy.cn/server/144842.html

相关文章

从RNA测序数据中推断差异RNA编辑位点的统计推断

从RNA测序数据中推断差异RNA编辑位点的统计推断 描述 本仓库包含两个R函数,用于运行REDITs(RNA编辑测试)来调用差异RNA编辑位点: 在病例-对照(或条件1 vs 条件2)队列之间显著不同的RNA编辑位点 由REDIT-LLR(RNA编辑测试 - 对数似然比)处理显著与分类变量(例如性别、…

神经网络(系统性学习四):深度学习——卷积神经网络(CNN)

相关文章&#xff1a; 神经网络中常用的激活函数神经网络&#xff08;系统性学习一&#xff09;&#xff1a;入门篇神经网络&#xff08;系统性学习二&#xff09;&#xff1a;单层神经网络&#xff08;感知机&#xff09;神经网络&#xff08;系统性学习三&#xff09;&#…

【数据结构】【线性表】一文讲完队列(附C语言源码)

队列 队列的基本概念基本术语基本操作 队列的顺序实现顺序队列结构体的创建顺序队列的初始化顺序队列入队顺序队列出队顺序队列存在的问题分析循环队列代码汇总 队列的链式实现链式队列的创建链式队列初始化-不带头结点链式队列入队-不带头节点链式队列出队-不带头结点带头结点…

【Pytest+Yaml+Allure】实现接口自动化测试框架

一、框架思想 requestsyamlpytestallure实现接口自动化框架。结合数据驱动和分层思想&#xff0c;将代码与数据分离&#xff0c;易维护&#xff0c;易上手。使用yaml编写编写测试用例&#xff0c;利用requests库发送请求&#xff0c;使用pytest管理用例&#xff0c;allure生成…

在ubuntu中查看csv

在 Ubuntu 中查看 CSV 文件的内容有多种方法。以下是一些常用的方法&#xff1a; 使用命令行工具 cat 命令 如果文件不大&#xff0c;可以使用 cat 命令快速查看文件内容&#xff1a; cat 10_11_query.csvless 命令 对于较大的文件&#xff0c;less 是一个更好的选择&#xf…

高新技术行业中的知识管理:关键性、挑战、策略及工具应用

知识管理的关键性 在瞬息万变的信息时代&#xff0c;知识已成为高新技术行业的核心竞争要素。知识管理&#xff0c;这一旨在高效组织、整合并应用企业内外部知识资源的管理策略&#xff0c;对于推动高新技术企业的持续创新与发展至关重要。它不仅能够激发研发团队的创造力&…

【数据结构】—— 线索二叉树

引入 我们现在提倡节约型杜会&#xff0c; 一切都应该节约为本。对待我们的程序当然也不例外&#xff0c;能不浪费的时间或空间&#xff0c;都应该考虑节省。我们再观察团下图的二叉树&#xff08;链式存储结构)&#xff0c;会发现指针域并不是都充分的利用了&#xff0c;有许…

【创建型设计模式】单例模式

【创建型设计模式】单例模式 这篇博客接下来几篇都将阐述设计模式相关内容。 接下来的顺序大概是&#xff1a;单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。 一、什么是单例模式 单例模式是一种创建型设计模式&#xff0c;它保证一个类仅有一个实例&#…