力扣刷题篇之数与位3

news2024/11/24 2:59:25

系列文章目录


目录

系列文章目录

前言

数学问题

总结


前言

 本系列是个人力扣刷题汇总,本文是数与位。刷题顺序按照[力扣刷题攻略] 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()));
        }
    }
}


总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何让普通用户使用sudo?

一、sudo的作用 sudo就是可以让我们的普通用户以root身份去做一些事情&#xff0c;这相当于给普通用户提升了权限&#xff0c;但是并不是每个普通用户都可以随便拿到root的提权的&#xff0c;也就是sudo是要经过一定处理才可以给普通用户使用&#xff0c;那么如何处理呢&#x…

单机版-redis(手动部署)

单机版-redis部署 部署模式:单机版-redis部署 Redis版本&#xff1a;redis-4.0.1 部署redis方式&#xff1a;手动部署 在完成第三步时已完成配置&#xff0c;后续为操作命令以及注意事项&#xff1b; 在进行操作数据库时&#xff0c;需要关注第五步注意事项&#xff0c;会涉…

卷积神经网络(CNN)衣服图像分类的实现

文章目录 前期工作1. 设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;我的环境&#xff1a; 2. 导入数据3.归一化4.调整图片格式5. 可视化 二、构建CNN网络模型三、编译模型四、训练模型五、预测六、模型评估 前期工作 1. 设置GPU&#xff08;如果使用的是CPU可以…

【Electron】electron-builder打包失败问题记录

文章目录 yarn下载的包不支持require()winCodeSign-2.6.0.7z下载失败nsis-3.0.4.1.7z下载失败待补充... yarn下载的包不支持require() 报错内容&#xff1a; var stringWidth require(string-width)^ Error [ERR_REQUIRE_ESM]: require() of ES Module /stuff/node_modules/…

SpringBoot整合Quartz示例

数据表 加不加无所谓,如果需要重启服务器后重新执行所有JOB就把sql加上 如果不加表 将application.properties中的quartz数据库配置去掉 自己执行自己的逻辑来就好,大不了每次启动之后重新加载自己的逻辑 链接&#xff1a;https://pan.baidu.com/s/1KqOPYMfI4eHcEMxt5Bmt…

IoC和DI

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

内网穿透的应用-通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

【数据下载】FileZilla安装及使用说明:以全球NCEP 再分析数据集为例

1 简介# 1 简介 FileZilla是一个免费开源的FTP软件&#xff0c;分为客户端版本和服务器版本&#xff0c;具备所有的FTP软件功能。 1.1 下载地址 File Zilla官网下载 1.2 安装过程 下载完成后&#xff0c;界面如下&#xff1a; 2 使用 2.1 主机设置 2.2 下载数据 全球N…

Mars3d-vue最简项目模板集成使用Mars3d的UI控件样板

备注说明&#xff1a; 1.小白可看步骤一二&#xff0c;进阶小白可直接看步骤三 步骤一&#xff1a;新建文件夹<uitest>&#xff0c;在mars3d仓库拉一份最简项目模板&#xff1a; git clone mars3d-vue-template: Vue3.x 技术栈下的Mars3D项目模板 步骤二&#xff1a;运…

受电诱骗快充取电芯片XSP08:PD+QC+华为+三星多种协议9V12V15V20V

目前市面上很多家的快充充电器&#xff0c;都有自己的私有快充协议&#xff0c;如PD协议、QC协议、华为快充协议、三星快充协议、OPPO快充协议等待&#xff0c;为了让它们都能输出快充电压&#xff0c;就需要在受电端也增加快充协议取电芯片XSP08&#xff0c;它可以和充电器通讯…

axios升级依赖版本后报错SyntaxError: Cannot use import statement outside a module

Axios构建为ES模块&#xff0c;而不是在Node中运行时的CommonJs。Jest的问题是它在Node中运行代码。这就是为什么告诉Jest转换Axios有效的原因。 Axios SDK附带了一个用于Node env的内置CommonJs文件。因此&#xff0c;我们可以通过将以下内容添加到您的package.json来修复它&a…

Windows SmartScreen中的漏洞!

&#x1f525;另一个流行漏洞是 CVE-2023-36025 - 绕过 Windows SmartScreen 安全功能&#xff0c;该功能是多个微软产品的网络钓鱼和恶意软件保护组件。 &#x1f47e;有多危险 利用该漏洞&#xff0c;攻击者可以绕过 Windows Defender SmartScreen 检查和相关警告。利用该漏…

alias linux 命令别名使用

如果在系统中你想要快速的完成一个命令&#xff0c;你可以使用alias命令&#xff1a; 如&#xff1a; alias ppsystemctl status httpd输入pp命令后即可得到如下结果 但这之时临时生效&#xff0c;一旦重启机器&#xff0c;命令就会失效&#xff1b;想要永久生效&#xff0c;…

HTML易忽略的角落【目录】

目前已有文章 **** 篇 本专栏是汇集了一些HTML常常被遗忘的知识&#xff0c;这里算是温故而知新&#xff0c;往往这些零碎的知识点&#xff0c;在你开发中能起到炸惊效果。我们每个人都没有过目不忘&#xff0c;过久不忘的本事&#xff0c;就让这一点点知识慢慢渗透你的脑海。 …

扩散模型实战(九):使用CLIP模型引导和控制扩散模型

推荐阅读列表&#xff1a; 扩散模型实战&#xff08;一&#xff09;&#xff1a;基本原理介绍 扩散模型实战&#xff08;二&#xff09;&#xff1a;扩散模型的发展 扩散模型实战&#xff08;三&#xff09;&#xff1a;扩散模型的应用 扩散模型实战&#xff08;四&#xff…

<MySQL> 什么是数据库索引?数据库索引的底层结构是什么?

目录 一、什么是数据库索引? 1.1 索引的概念 1.2 索引的特点 1.3 索引的适用场景 1.4 索引的使用 1.4.1 创建索引 1.4.2 查看索引 1.4.3 删除索引 二、数据库索引的底层结构是什么&#xff1f; 2.1 数据库中的 B树 长啥样&#xff1f; 2.2 B树为什么适合做数据库索…

缩放图片算法优化 sse

前情提要 这里实现了打印文件的缩放算法 缩放打印文件&#xff08;prt,prn&#xff09; 核心功能如下&#xff1a; void CZoomPrtFile::zoomPrtFile(BYTE* pTargetData) {float xRatio static_cast<float>(m_perWidth - 1) / m_zoomWidth;float yRatio static_cast<…

[PHP]写个简单的分页静态接口用宝塔部署到Nginx

使用get方式传入page和pageSize参数&#xff0c;接口根据参数进行分页处理。 1.创建一个 PHP 文件 例如 city.php&#xff0c;用于定义接口和返回 JSON 数据。 2.在 city.php 文件中编写接口 <?php// 设置响应内容为 JSON 格式 header(Content-Type: application/json);…

iApp祁天社区UI成品源码 功能齐全的社区应用

iApp祁天社区UI成品源码是一个非常实用的资源&#xff0c;提供了完整的源代码&#xff0c;可以帮助您快速搭建一个功能齐全的社区应用。 这个源码具有丰富的UI设计&#xff0c;经过精心调整和优化&#xff0c;确保用户体验流畅而舒适。它不仅具备基本的社区功能&#xff0c;如…

linux清理僵尸进程

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