​力扣解法汇总1015. 可被 K 整除的最小整数

news/2024/7/1 5:15:36

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

给定正整数 k ,你需要找出可以被 k 整除的、仅包含数字 1 的最  正整数 n 的长度。

返回 n 的长度。如果不存在这样的 n ,就返回-1。

注意: n 不符合 64 位带符号整数。

示例 1:

输入:k = 1
输出:1
解释:最小的答案是 n = 1,其长度为 1。

示例 2:

输入:k = 2
输出:-1
解释:不存在可被 2 整除的正整数 n 。

示例 3:

输入:k = 3
输出:3
解释:最小的答案是 n = 111,其长度为 3。

提示:

  • 1 <= k <= 105

解题思路:

* 解题思路:
* resid代表余数。比如k为7,当前计算值为11时,分为7和4,变成111的时候,我们可以分成70和41,70肯定是可以被整除的,所以我们只要求41和7的余数。继续前面的运算。
* 所以,永远都使用余数*10+1进行新一轮运算求余,直到出现重复。

代码:

public class Solution1015 {

    public int smallestRepunitDivByK(int k) {
        int resid = 1 % k, len = 1; // resid为余数,len为数字长度,初始值为1
        Set<Integer> set = new HashSet<>();
        set.add(resid);
        while (resid != 0) {
            resid = (resid * 10 + 1) % k;
            len++;
            if (set.contains(resid)) {
                return -1;
            }
            set.add(resid);
        }
        return len; // 返回数字长度
    }


http://lihuaxi.xjx100.cn/news/1115772.html

相关文章

『python爬虫』16. 多线程与多进程(保姆级图文)

目录 多线程1. 什么是多线程&#xff1f;2. 串行模式3. 多线程3.1 多线程方法写法3.2 多线程方法带参数3.3 多线程类写法 多进程1. 什么是多进程 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 多线程 1. 什么是多…

优化营商环境:打造政策精准服务平台,提高惠政策落实落地时效性

近年来&#xff0c;各级政府部门及产业园区不断加强对于惠企政策的宣传和落实&#xff0c;努力打造优质的营商环境&#xff0c;加大助企纾困力度&#xff0c;以推动经济高质量发展。为了更好地实现这一目标&#xff0c;搭建惠企政策精准服务平台成为了一个非常重要的举措。 搭建…

计算机毕业论文选题推荐|软件工程|系列二

文章目录 导文题目导文 计算机毕业论文选题推荐|软件工程 (***语言)==使用其他任何编程语言 例如:基于(***语言)门窗账务管理系统的设计与实现 得到:基于JAVA门窗账务管理系统的设计与实现 基于vue门窗账务管理系统的设计与实现 等等 题目 基于(***语言)门窗账务管理系…

芒果用户未来价值预估 baseline学习

背景 我们从三个层面定义用户未来价值。 用户N日留存分用户N日观看视频次数用户N日观看视频的总时长 以七日作为未来时间窗口&#xff1a; 1.一个用户的7日留存分等于3&#xff0c;代表这个用户未来的7天里&#xff0c;有3天会访问芒果TV。 2.一个用户未来7天观看了20次视频…

鉴权C# HmacSHA256加密与java HmacSHA256一致

public static string HmacSHA256Encrypt(string secret, string signKey) {   string signRet string.Empty;   using (HMACSHA256 mac new HMACSHA256(Encoding.UTF8.GetBytes(secret)))   {     mac.Initialize();     byte[] hash mac.ComputeHash(Encodi…

OpenPCDet系列 | 3.OpenPCDet点云检测框架训练准备流程

文章目录 训练准备流程1. dataloader部分2. network部分3. optimizer部分4. scheduler部分训练准备流程 对于OpenPCDet中模型的训练过程如下所示,在训练前一般需要进行4个部分的准备:数据准备、网络模型准备、以及优化器和学习率调度器。下面对这4个大部分分别介绍。主要就是…

程序设计入门——C语言 2023年5月9日

程序设计入门——C语言 一、基础理解1、什么是计算机&#xff1f;如何用计算机做事情&#xff1f;什么是应用软件&#xff1f;编程语言干啥的&#xff1f;计算机与人脑&#xff1f;学习编程能干啥&#xff1f;2、计算机-程序-算法3、解释语言vs编译语言 课程来源&#xff1a;链…

SpringBoot——入门程序的简单介绍

简单介绍&#xff1a; 在之前我们创建了一个基础的SpringBoot的程序&#xff0c;可以看到&#xff0c;我们只是启动了一个Java程序&#xff0c;但是它启动了一个Tomcat的服务器。其实在这里面他还启动了很多的服务&#xff0c;只不过这些服务我们都没有用到&#xff0c;我们就…