力扣-位运算-8【算法学习day.48】

前言

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


习题

1.最长优雅子数组

题目链接: 2401. 最长优雅子数组 - 力扣(LeetCode)

题面:

代码:

java 复制代码
class Solution {
    public int longestNiceSubarray(int[] nums) {
       int ans = 0;
        for (int i = 0; i < nums.length; i++) { // 枚举子数组右端点 i
            int or = 0, j = i;
            while (j >= 0 && (or & nums[j]) == 0){
                 or |= nums[j--]; // 加到子数组中
            }
            ans = Math.max(ans, i - j);
        }
        return ans;

    }
}

2.数组最后一个元素的最小值

题目链接: 3133. 数组最后一个元素的最小值 - 力扣(LeetCode)

题面:

代码:

java 复制代码
class Solution {
    public long minEnd(int n, int x) {
       n--;
       int i = 0;
       int j = 0;
       long ans = x;
        while((n>>j)>0){
            if(((ans>>i)&1)==0){
                long bit = ((n>>j)&1);
                ans|=(long)(bit<<(i));
                j++;
            }
            i++;
        }
        return ans;
    }
   
}

后言

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

相关推荐
gc_22991 天前
学习C#调用OpenXml操作word文档的基本用法(7:Style类分析-5)
学习·word·openxml
AA陈超1 天前
ASC学习笔记0014:手动添加一个新的属性集
c++·笔记·学习·ue5
Run_Teenage1 天前
C++:智能指针的使用及其原理
开发语言·c++·算法
Chunyyyen1 天前
【第二十二周】自然语言处理的学习笔记06
笔记·学习·自然语言处理
hhcccchh1 天前
学习vue第三天 Vue 前端项目结构的说明
前端·vue.js·学习
WX-bisheyuange1 天前
基于Spring Boot的民宿预定系统的设计与实现
java·spring boot·后端·毕业设计
码界奇点1 天前
Java设计模式精讲从基础到实战的常见模式解析
java·开发语言·设计模式·java-ee·软件工程
mit6.8241 天前
二维差分+前缀和
算法
民乐团扒谱机1 天前
自然的算法:从生物进化到智能优化 —— 遗传算法的诗意与硬核“
算法
希望有朝一日能如愿以偿1 天前
力扣每日一题:仅含1的子串数
算法·leetcode·职场和发展