JAVA学习日记 (放假了,哈哈)

news2024/12/24 2:37:19

每日一题

1016. 子串能表示从 1 到 N 数字的二进制串

难度中等122收藏分享切换为英文接收动态反馈

给定一个二进制字符串 s 和一个正整数 n,如果对于 [1, n] 范围内的每个整数,其二进制表示都是 s 的 子字符串 ,就返回 true,否则返回 false 

子字符串 是字符串中连续的字符序列。

示例 1:

输入:s = "0110", n = 3
输出:true

示例 2:

输入:s = "0110", n = 4
输出:false

提示:

  • 1 <= s.length <= 1000
  • s[i] 不是 '0' 就是 '1'
  • 1 <= n <= 109

通过次数24,037提交次数37,972

很开心,没有要用kmp算法

要是用了,我还得去搞一会,难搞

思路很简单,就是枚举一遍,把数变成二进制

让后用bf(暴力匹配)搞定

数据量小,还是舒服的

bool queryString(char * s, int n){

    for(int kl=1;kl<=n;kl++){
       char b[50];
       int hj=0;
       int j=kl;
       while(j!=0){
           int k=j%2;
           j=j/2;
           b[hj]=k+48;
           hj++;
       }
       int g=0;
       
       for(int h=0;h<strlen(s);h++){
           int k=h;
           int hg=hj;
            while(hg!=0){
                if(s[k]==b[hg-1]){
                    k++;
                    hg--;
                }
                else{
                    break;
                }         
            }
            if(hg==0){
               g=1; 
               break;
            }
       }
       
       if(g==0){
       return false;
       }      
 
    }
   return true;
}

不长但是循环好多,写起来不长但是烦的呀,可恶

还有就是细心,不要在细节上出错了,不好查,思路没问题就不要代码出问题

下次写的时候要写注释了

2457. 美丽整数的最小增量

难度中等23收藏分享切换为英文接收动态反馈

给你两个正整数 n 和 target 。

如果某个整数每一位上的数字相加小于或等于 target ,则认为这个整数是一个 美丽整数 。

找出并返回满足 n + x 是 美丽整数 的最小非负整数 x 。生成的输入保证总可以使 n 变成一个美丽整数。

示例 1:

输入:n = 16, target = 6
输出:4
解释:最初,n 是 16 ,且其每一位数字的和是 1 + 6 = 7 。在加 4 之后,n 变为 20 且每一位数字的和变成 2 + 0 = 2 。可以证明无法加上一个小于 4 的非负整数使 n 变成一个美丽整数。

示例 2:

输入:n = 467, target = 6
输出:33
解释:最初,n 是 467 ,且其每一位数字的和是 4 + 6 + 7 = 17 。在加 33 之后,n 变为 500 且每一位数字的和变成 5 + 0 + 0 = 5 。可以证明无法加上一个小于 33 的非负整数使 n 变成一个美丽整数。

示例 3:

输入:n = 1, target = 1
输出:0
解释:最初,n 是 1 ,且其每一位数字的和是 1 ,已经小于等于 target 。

提示:

  • 1 <= n <= 1012
  • 1 <= target <= 150
  • 生成的输入保证总可以使 n 变成一个美丽整数。

1,我的思路很是简单就是向上枚举,但是代码又丑又长,难搞

最要命的是时间超限了,好家活白写了折磨长

换个思路,从别的方向看,

一下就发现了奥妙

1.其实你会发现,我们只要进位就可能会满足条件
如 16 4
这组 往上加 17 18 19都是没有意义的

那个位归0直接进位20才有可能满足

每一位上的和才有可能满足条件

要是进位了,不满足就继续往后进

如 9234 1这个
我们先 9240不满足 //个位归零进
9300不满足 //十位归零进
10000就一定会满足的 //百位归零进
我们就没有必要去对中间的任何的模拟了
直接进位的跳,最多不会超过12次(应该是12次)
最后用你得到的满足条件的数去减去n,就可以得到答案的
注意:在开始进位之前先要判断不进位是否满足条件
如 1是直接满足的

long long makeIntegerBeautiful(long long n, int target){
     
     int b[20]={0};//先将n 转化成数组
     int k=0;
     int j;
     int ans=0;
     long long ll=n;//提前存一下,后面要减
     while(n!=0){
          b[k]=n%10;
          ans=b[k]+ans;
          k++;
          n=n/10;
     }//n变成数组,反了的,但是每必要搞正,反的一不影响结果
     if(ans<=target){ //初始的未进位的
         return 0;
     }
     else{
          for(j=0;j<k;j++){
              if(j+1==k){
                  k++;
              }
            b[j]=0; //进位
            b[j+1]++;  
          
             for(int ff=j+1;ff<k;ff++){
                    if(b[ff]>=10){
                    if(ff+1==k){
                      k++;
                    }
                       b[ff+1]++;
                        b[ff]=b[ff]%10;
                    }
             } //可能会进位 如 999 对个位归零 就变成了1000了    
       
          int sum=0;
          for(int kl=j+1;kl<k;kl++){
              sum+=b[kl];
          }//求各个位的和

          if(sum<=target){
              break;
          }//满足了直接跳出
          }
     }
     long long max=0;
     long long na=1;
     for(int l=0;l<k;l++){//把我们进位的数还原出来
         max+=b[l]*na;
         na=na*10;
     }
  
  return max-ll;//得出答案

}

有注释的,写完后补的,顺带在力扣写一篇题解

今天学习了java

的多态,但是学的好少(要测试了呜呜呜)

还是记笔记吧

 

 

 撒花谢幕了,明天刷4至少,可恶

 

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

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

相关文章

时间轮的golang实践浅析

引言 下列代码模仿一段RPC请求的执行过程&#xff0c;执行后会有哪些问题&#xff1a; RPC代码示例答案&#xff1a;因为超时控制后未阻断后续请求&#xff0c;导致并发读写产生Panic思考&#xff1a;客户端发起 HTTP 请求后&#xff0c;如果在指定时间内没有收到服务器的响应…

软件开发安全

软件开发安全 软件安全开发生命周期软件生命周期模型软件生命周期模型-瀑布模型软件生命周期模型-迭代模型软件生命周期模型-增量模型软件生命周期模型-快速原型模型软件生命周期模型-螺旋模型软件生命周期模型-净室模型软件安全重要性–软件危机 软件安全问题产生-内因软件安全…

51单片机(十一)DS1302实时时钟

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

2023年软考系统架构师新版专栏导读

目录 新的改变软考是不是内卷?老版教材删减章节建议学习计划专栏更文列表新的改变 软考今年改版啦 高级系统架构师考试在2022年12月底出了第二版教材,比第二版多出来140页,虽然看起来好像更难了,但是我认为改版是件好事,摒弃了一些过时的淘汰的技术,更新了一些新知识点,…

二叉树OJ

文章目录 二叉树OJ根据二叉树创建字符串思路示例代码 二叉树的层序遍历思路示例代码 二叉树的层序遍历 II思路示例代码 二叉树的最近公共祖先思路1示例代码1思路2示例代码2 二叉搜索树与双向链表思路1示例代码1思路2示例代码2 迭代实现二叉树的三种遍历前序遍历思路示例代码 中…

从零开始:如何成为一名优秀的品牌策划师

作为一个十年老策划&#xff0c;告诉你我们公司&#xff08;一个比较牛的品牌策划公司&#xff09;当年是怎么培养新人的吧。 1、看书 你必须要看六本书&#xff0c;他们是&#xff1a;特劳特的《定位理论》、《营销4.0》、《品牌王道》、《商战》、《竞争优势》&#xff0c;…

一图看懂 multidict 模块:类似于字典的键值对集合,键可以多次出现,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 multidict 模块&#xff1a;类似于字典的键值对集合&#xff0c;键可以多次出现&#xff0c;资料整理笔记&#xff08;大全&#xff09; &#x1f9ca;摘要&#x1f9ca;模…

数据库sql语句(count(*)和count(字段))

例题&#xff1a; 创建如下两张表 分别命名为books和persons &#xff08;1&#xff09;按照书名&#xff0c;姓名的顺序列出字里包含‘德’字的人物的姓名&#xff0c;书名和字。 select name 姓名,bookname 书名,style 字 from books,persons where style like %德% and bo…

SpringBoot配置文件相关

SpringBoot配置文件内容分为两类: 1.Spring自带的配置,比如server.port(这玩意就自己躺在application.properties里) 2.自定义的配置 配置文件的格式分为两种 1.properties格式 2.yml格式 properties和yml的区别 1.通用性 properties是SpringBoot项目默认的配置文件!他已经很老…

Baumer工业相机堡盟工业相机软件CameraExplorer常见功能使用说明

Baumer工业相机堡盟工业相机软件CameraExplorer常见功能使用说明 Baumer工业相机Baumer工业相机图像采集功能Baumer工业相机图像基本参数设置 Baumer工业相机 Baumer工业相机堡盟相机是一种高性能、高质量的工业相机&#xff0c;可用于各种应用场景&#xff0c;如物体检测、计…

诺亚财富财报不及预期,收入大幅下滑27.8%,股价也已下跌26%

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 诺亚财富2022财年业绩和管理层评论 在此前于2023年3月下旬举行的2022年第四季度财报会议上&#xff0c;诺亚财富(NOAH)强调&#xff0c;“我们希望将2022年的痛苦转化为2023年的收获。”虽然诺亚财富在财报会议上没有提供2…

三子棋的实现【C语言】

完成一个三子棋游戏的实现包括三部分 test.c 测试游戏 game.c 实现游戏 game.h 声明游戏 菜单 首先我们完成游戏的菜单部分 游戏部分 完成三子棋我们需要完成棋盘的创建&#xff0c;玩家下棋&#xff0c;电脑下棋&#xff0c;判断胜负&#xff0c;以及将棋盘展现给玩家&a…

WebApi安全性 使用TOKEN+签名验证

&#xff08;2&#xff09;在请求头中添加timespan&#xff08;时间戳&#xff09;&#xff0c;nonce&#xff08;随机数&#xff09;&#xff0c;staffId&#xff08;用户Id&#xff09;&#xff0c;signature&#xff08;签名参数&#xff09;    //加入头信息request.Hea…

shell中函数的应用(题型列举)

1、编写函数&#xff0c;实现打印绿色OK和红色FAILED 判断是否有参数&#xff0c;存在为Ok&#xff0c;不存在为FAILED 第一步&#xff1a;进入脚本文件进行编辑 第二步&#xff1a;编辑函数脚本文件 colour() {if [ $# -ne 0 ];thenecho -e "\033[32m OK \033[0m"e…

3D樱花照片墙、3D樱花照片墙有文字、红蓝爱心、流星雨3D旋转相册、文字加爱心

前端页面百度云盘自提 3D樱花照片墙 3D樱花照片墙有文字 红蓝爱心 流星雨3D旋转相册 文字加爱心

数据治理之关键环节元数据管理开源项目datahub探索

文章目录 概述定义核心功能概念元数据应用其他开源 架构概览组件元数据摄取架构服务体系结构 本地部署环境要求安装摄取样例 摄取入门介绍核心概念命令行MySQL摄取示例配置ClickHouse摄取示例 概述 定义 datahub 官网地址 https://datahubproject.io/ 最新版本v0.10.2 datahub…

怎么将m4a转换成mp3?这三种方法不妨试试看吧

将M4A转换为MP3具有重要作用。首先&#xff0c;MP3格式是一种通用的音频格式&#xff0c;几乎所有的播放器和设备都支持它。而M4A格式则不如MP3格式广泛。如果我们想在多个设备上播放M4A音频文件&#xff0c;有时候需要将其转换为MP3格式。其次&#xff0c;M4A文件通常比MP3文件…

计算机专业含金量高的证书

目录 第一种证书&#xff1a;计算机技术与软件专业资格考试证书 第二种证书&#xff1a;微软认证 第三种证书&#xff1a;Oracle认证 第四种证书&#xff1a;思科认证 第五种证书&#xff1a;华为认证 第六种证书&#xff1a;红帽认证工程师 第七种证书&#xff1a;阿里…

Python每日一练(20230512) 跳跃游戏 V\VI\VII

目录 1. 跳跃游戏 V 2. 跳跃游戏 VI 3. 跳跃游戏 VII &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 跳跃游戏 V 给你一个整数数组 arr 和一个整数 d 。每一步你可以从下标 i 跳到&a…

蒙层禁止下方页面滚动防抖动完美方案

学习链接 js如何禁止滚动条滚动&#xff0c;但不消失&#xff01; - 这个是完美解决方案&#xff08;在线demo示例&#xff09; 解决窗口滚动条消失而导致的页面内容抖动的问题 完美解决js 禁止滚动条滚动&#xff0c;并且滚动条不消失&#xff0c;页面大小不闪动 蒙层禁止…