力扣刷题篇之数与位3

系列文章目录


目录

系列文章目录

前言

数学问题

总结


前言

 本系列是个人力扣刷题汇总,本文是数与位。刷题顺序按照[力扣刷题攻略] Re:从零开始的力扣刷题生活 - 力扣(LeetCode)


数学问题

204. 计数质数 - 力扣(LeetCode)

通过遍历从2开始到 n 的平方根,将每个质数的倍数标记为非质数,最终统计未被标记为非质数的数的个数。 

class Solution {
    public int countPrimes(int n) {
        if (n <= 1) {
            return 0; // 小于等于1的情况下没有质数
        }

        // 创建一个布尔数组,用于标记是否是质数,初始化都为 true
        boolean[] notPrime = new boolean[n];
        notPrime[0] = notPrime[1] = true; // 0和1不是质数

        // 使用埃拉托斯特尼筛法,从2开始遍历到sqrt(n)
        for (int i = 2; i < Math.sqrt(n); i++) {
            if (!notPrime[i]) {
                // 如果当前数是质数,则将其倍数标记为非质数
                for (int j = 2; j * i < n; j++) {
                    notPrime[i * j] = true;
                }
            }
        }

        // 统计未被标记为非质数的数的个数
        int count = 0;
        for (int i = 2; i < notPrime.length; i++) {
            if (!notPrime[i]) {
                count++;
            }
        }
        return count;
    }
}

263. 丑数 - 力扣(LeetCode)

 通过循环除以质因子 2、3、5 来判断是否是丑数。如果最终 n 等于 1,说明原始数字只包含质因子 2、3 和/或 5,即是丑数。

class Solution {
    public boolean isUgly(int n) {
        if(n<=0){
            return false;
        }
        while(n%2==0){
            n/=2;
        }
        while(n%3==0){
            n/=3;
        }
        while (n%5==0){
            n/=5;
        }
       
        return n==1;
    }
}

367. 有效的完全平方数 - 力扣(LeetCode)

使用二分查找的思想,将范围划分为 [1, num],在每一步中找到中点 mid,然后判断 mid 的平方是否等于 num。如果是,则判断 num 是否能被 mid 整除;如果 mid 的平方小于 num,则更新搜索范围为 [mid+1, high];如果 mid 的平方大于 num,则更新搜索范围为 [low, mid-1]。最终如果找到一个平方等于 num 的数,则返回 true,否则返回 false。 

class Solution {
    public boolean isPerfectSquare(int num) {
        int low = 1;
        int high = num;

        // 使用二分查找
        while (low <= high) {
            int mid = low + (high - low) / 2;
            int t = num / mid;

            // 如果 mid 的平方等于 num,判断 num 是否能被 mid 整除
            if (t == mid) {
                if (num % mid == 0) {
                    return true;
                }
                low = mid + 1;
            } else if (t < mid) {
                high = mid - 1;
            } else {
                low = mid + 1;
            }
        }

        return false;
    }
}

1071. 字符串的最大公因子 - 力扣(LeetCode)

使用递归的思想。它检查两个字符串的长度,如果相等,则判断是否相等,如果不相等,则递归调用自身,去掉较长字符串的前缀部分,直到两个字符串相等或某一个为空。最终返回最大公约字符串。 

class Solution {
    public String gcdOfStrings(String str1, String str2) {
        // 如果其中一个字符串为空,则返回另一个字符串
        if ("".equals(str1)) {
            return str2;
        }
        if ("".equals(str2)) {
            return str1;
        }

        // 如果两个字符串长度相等,返回它们本身或空字符串
        if (str1.length() == str2.length()) {
            return str1.equals(str2) ? str1 : "";
        } else if (str1.length() < str2.length()) {
            // 如果 str1 的长度小于 str2,判断 str1 是否为 str2 的前缀
            if (!str1.equals(str2.substring(0, str1.length()))) {
                return "";
            }
            // 递归调用 gcdOfStrings,去掉 str1 部分
            return gcdOfStrings(str1, str2.substring(str1.length()));
        } else {
            // 如果 str2 的长度小于 str1,判断 str2 是否为 str1 的前缀
            if (!str2.equals(str1.substring(0, str2.length()))) {
                return "";
            }
            // 递归调用 gcdOfStrings,去掉 str2 部分
            return gcdOfStrings(str2, str1.substring(str2.length()));
        }
    }
}


总结

数与位收尾了,有点东西,之前那个进制转换还有点需要掌握下多种方法,其他倒是都很简单,多敲!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/155213.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IoC和DI

Spring 是包含众多工具的 IoC 容器,存的是对象,对象这个词在 Spring 的范围内,称之为 bean IoC 是控制反转 控制权进行了反转,比如对某一个东西的控制权在 A 手上,结果变成了 B ,Spring 管理的是 bean ,所以这里的控制权指的是 bean 的控制权,也就是对象的控制权进行了反转 …

DNS1(Bind软件)

名词解释 1、DNS&#xff08;Domain Name System&#xff09; DNS即域名系统&#xff0c;它是一个分层的分布式数据库&#xff0c;存储着IP地址与主机名的映射 2、域和域名 域为一个标签&#xff0c;而有多个标签域构成的称为域名。例如hostname.example.com&#xff0c;其…

海康Visionmaster-环境配置:VB.Net 二次开发环境配 置方法

Visual Basic 进行 VM 二次开发的环境配置分为三步。 第一步&#xff0c;使用 VS 新建一个框架为.NET Framework 4.6.1&#xff0c;平台去勾选首选 32 为的工程&#xff0c;重新生成解决方案&#xff0c;保证工程 Debug 下存在 exe 文件&#xff0c;最后关闭新建工程&#xff1…

python趣味编程-5分钟实现一个简单贪吃蛇游戏(含源码、步骤讲解)

在本教程《如何用 Python 制作游戏》中,我们将为名为“简单贪吃蛇游戏”的游戏制作一个程序。 Python 中的贪吃蛇游戏:项目信息 项目名称:Python 游戏摘要:Python提供了一个名为pygame的内置库,用于开发游戏。使用的语言:Python 与 Tkinter GUI 库Python版本(推荐):2.…

yolov5模型代码怎么修改

yaml配置文件 深度乘积因子 宽度乘积因子 所有版本只有这两个参数的不同&#xff0c;s m l x逐渐加宽加深 各种类型层参数对照 backbone里的各层&#xff0c;在这里解析&#xff0c;只需要改.yaml里的各层参数就能控制网络结构 修改网络结构 第一步&#xff1a;把新加的模块…

Educational Codeforces Round 20 A-E

文章目录 A. Maximal Binary MatrixB. Distances to ZeroC. Maximal GCDD. Magazine AdE. Roma and Poker A. Maximal Binary Matrix 思路&#xff1a;一道很有意思的构造&#xff0c;我们可以发现&#xff0c;按照下述&#xff0c;从外到内进行一层一层的构造一定是最优的。 …

系列六、JVM的内存结构【栈】

一、产生背景 由于跨平台性的设计&#xff0c;Java的指令都是根据栈来设计的&#xff0c;不同平台的CPU架构不同&#xff0c;所以不能设计为基于寄存器的。 二、概述 栈也叫栈内存&#xff0c;主管Java程序的运行&#xff0c;是在线程创建时创建&#xff0c;线程销毁时销毁&…

48v变12v同步转换芯片

48v变12v同步转换芯片 以下是一篇关于48V变12V同步转换器WD5105ic的文章正文&#xff1a;48V变12V同步转换器WD5105ic是一种电源管理芯片&#xff0c;它可以将48V的直流电压转换为12V的直流电压。这款芯片具有广泛的应用范围&#xff0c;包括车载充电器件、电动车仪表器件、电…

系列二、什么是OOM?什么是StackOverflowError?有哪些方法分析?

一、什么是OOM&#xff1f; OOM是堆内存溢出&#xff0c;产生的原因是堆的空间大小是有限的&#xff0c;当堆空间的大小不足以满足创建对象所需要的内存空间时&#xff0c;就会抛出OOM的异常。 二、什么是StackOverflowError&#xff1f; StackOverflowError是栈内存溢出的意思…

C++核心编程 day09 类型转换、异常、输入输出流

C核心编程 day09 类型转换、异常、输入输出流 1. 类型转换2. 异常2.1 异常语法2.2 C标准异常库 3. 输入输出流3.1 输入输出流概念以及流类库3.2 标准输入流3.3 标准输出流3.4 文件读写 1. 类型转换 C中的类型转换有四类&#xff0c;分别是静态转换、动态转换、常量转换、重新解…

STM32 ADC介绍和应用

目录 1.ADC是什么&#xff1f; 2.ADC的性能指标 3.ADC特性 4.ADC通道 5.ADC转换顺序 6.ADC触发方式 7.ADC转化时间 8.ADC转化模式 扫描模式 单次转换/连续转换 9.ADC实验 使用ADC读取烟雾传感器的值 代码实现思路&#xff1a; 核心代码示例&#xff1a; 1.ADC是什…

算法---相等行列对

题目 给你一个下标从 0 开始、大小为 n x n 的整数矩阵 grid &#xff0c;返回满足 Ri 行和 Cj 列相等的行列对 (Ri, Cj) 的数目。 如果行和列以相同的顺序包含相同的元素&#xff08;即相等的数组&#xff09;&#xff0c;则认为二者是相等的。 示例 1&#xff1a; 输入&…

Windows10电脑没有微软商店的解决方法

在Windows10电脑中用户可以打开微软商店&#xff0c;下载自己需要的应用程序。但是&#xff0c;有用户反映自己Windows10电脑上没有微软商店&#xff0c;但是不清楚具体的解决方法&#xff0c;接下来小编给大家详细介绍关于解决Windows10电脑内微软商店不见了的方法&#xff0c…

01Urllib

1.什么是互联网爬虫&#xff1f; 如果我们把互联网比作一张大的蜘蛛网&#xff0c;那一台计算机上的数据便是蜘蛛网上的一个猎物&#xff0c;而爬虫程序就是一只小蜘蛛&#xff0c;沿着蜘蛛网抓取自己想要的数据 解释1&#xff1a;通过一个程序&#xff0c;根据Url(http://www.…

linux清理僵尸进程

当你top看到这个&#xff0c;或者按M后看到内存吃的很多&#xff0c;那你看下有没有&#x1f9df; 二选一查看是什么进程 ps aux | egrep "Z|defunct" ps -aux | awk {if($8"Z"){print $2,$11}}没用直接杀杀杀 kill -9 查到的PID号可中断下载文件 wget…

【Linux网络】工作环境救急——关于yum安装的5个花式操作

目录 1、只下载不安装&#xff0c;离线安装软件 2、自行打包创建元数据 第一步&#xff1a;先准备好nginx的软件包&#xff0c;放在一个文件夹下 第二步&#xff1a;在本地下载createrepo命令软件&#xff0c;用于创建元信息&#xff0c;这个一定是对包的上一级目录使用命令…

【整顿C盘】pycharm、chrome等软件,缓存移动

C盘爆了&#xff0c;特来找一下巨大的软件缓存&#xff0c;特此记录&#xff0c;跟随的各大教程&#xff0c;和自己的体会 一、爆炸家族JetBrains 这个适用于pycharm、idea、webstorm等等&#xff0c;只要是JetBrains家的&#xff0c;2020版本以上&#xff0c;都是一样的方法 p…

python内置模块subprocess 模块,创建和管理子进程

一、简介 subprocess 是 Python 标准库中的一个模块&#xff0c;用于创建和管理子进程。它提供了一种在 Python 程序中启动新进程、连接到它们的输入/输出/错误管道以及获取它们的返回值的方法。 使用 subprocess 模块&#xff0c;你可以在 Python 程序中执行外部命令、调用其…

Linux_/proc目录_查看处理器的信息/proc/cpuinfo

1、cat /proc/cpuinfo_查看/proc/cpuinfo文件的内容 可以看到板卡有4个处理器&#xff0c;剩下的信息emmm...... 2、BogoMIPS_反映CPU运算速率 MIPS是millions of instructions per second(百万条指令每秒)的缩写&#xff0c;其代表CPU的运算速率。 BogoMIPS是Linux大致计算…

Python开源项目GPEN——人脸重建(Face Restoration),模糊清晰、划痕修复及黑白上色的实践

无论是自己、家人或是朋友、客户的照片&#xff0c;免不了有些是黑白的、被污损的、模糊的&#xff0c;总想着修复一下。作为一个程序员 或者 程序员的家属&#xff0c;当然都有责任满足他们的需求、实现他们的想法。除了这个&#xff0c;学习了本文的成果&#xff0c;或许你还…