Day1--每日一练

news2024/9/28 23:29:16
  • 🍁 个人主页:爱编程的Tom
  • 💫 本篇博文收录专栏:每日一练-算法篇
  • 👉 目前其它专栏:c系列小游戏     c语言系列--万物的开始_  Java专栏等              
  • 🎉 欢迎 👍点赞✍评论⭐收藏💖三连支持一下博主🤞
  • 🧨现在的沉淀就是对未来的铺垫🎨 

目录

         前言 

                题目一 

                题目二 

                题目三 



前言 

每天练习三道题,今日题目:统计数字2出现次数、寻找公共元素、点击消除问题。 

题目一 

统计区间内某个数字出现的次数

例如在区间[2.22]的范围之中,统计数字2出现的次数(应为6次)。

本题要求在某一区间内,统计2出现的次数。

  • 第一次尝试解题:
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int start = scanner.nextInt();
        int end  = scanner.nextInt();
        Set<Integer> set = new HashSet<>();
        for (int i = start; i < end; i++) {
            if (i == 2 || String.valueOf(i).contains("2")) {
                set.add(i); 
            }
        }
        System.out.println(set.size());
    }

通过提交发现,只通过了10%的测试用例,经过检查发现该代码只统计了出现2以及包含2的数字的次数,并没有解决问题。

更新思路使用除10取余,除10取整的方法,计算统计每个数字中2出现的次数,最后在累加得到最终值,使问题得到了解决,最终通过全部的测试用例 。

  • 更新后的代码:
public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int start = scanner.nextInt();
            int end = scanner.nextInt();
            int count  = 0;
            for(int i = start; i <= end; i++) {
                count += countNum(i);
            }
            System.out.println(count);

        }
        public static int countNum(int num) {
            int count = 0;
            while (num > 0) {
                if (num % 10 == 2) {
                    count++;
                }
                num /= 10;
            }

            return count;
        }

题目二 

计算两个数组之间的公共元素,例如数组1中 {1,2,3,4}, 数组2中{2,3,5,6},所对应的公共元素就是{2,3}。由此可得:

解题思想使用HashSet解决问题,看数组2是否包含数组1的内容,包含则输出并返回

并且通过全部的测试用例  

  • 解决代码
public ArrayList<Integer> intersection(ArrayList<Integer> nums1, ArrayList<Integer> nums2) {
        // write code here
        HashSet<Integer> set1 = new HashSet<>(nums1);
        HashSet<Integer> set2 = new HashSet<>(nums2);
        ArrayList<Integer> result = new ArrayList<>();
        for (Integer num : set1) {
            if (set2.contains(num)) {
                result.add(num);
            }
        }
        return result;
    }

题目三 

经典的牛牛点击消除问题 :相邻的两个小写字母可以相互抵消,其它情况均不可以。

例如输入abbc,输出ac;输入absddsc,输出abc.

由上述可知,可以利用栈的特性来进行解决:先进后出 

思路:我们将其数据放入一个栈中,后入栈的与栈中数据对比,栈空入栈,相等出栈,不等入栈,最后输出栈中元素,逆序打印(因为先进后出的原因,出栈的数据是反的,需要逆序打印)

最终通过全部的测试用例 

解决代码: 

public static void main3(String[] args) {
        Stack<Character> stack = new Stack<>();
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        for (int i = 0; i < str.length(); i++) {
            if (stack.empty()) {
                stack.push(str.charAt(i));
            } else if (str.charAt(i) == stack.peek()) {
                stack.pop();
            }else {
                stack.push(str.charAt(i));
            }
        }
        if (stack.empty()) {
            System.out.println(0);
        }
        String s = "";
        while (!stack.empty()) {
            s = s + stack.pop();
        }
        for (int i = s.length()-1; i >= 0 ; i--) {
            System.out.print(s.charAt(i));
        }
    }

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

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

相关文章

MacOS和Windows中怎么安装Redis

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、MacOS中Redis的安装2.1 HomeBrew 安装&#xff08;推荐&#xff09;2.2 通过官方…

终于找到了免费的C盘清理软件(极智C盘清理)

搜了很久&#xff0c;终于让我找到了一款 完全免费的C盘清理软件&#xff08;极智C盘清理&#xff09;。 点击前往官网免费使用极智C盘清理软件&#xff1a; C盘清理 用户好评 完全免费的极智C盘清理 用极智C盘清理清理了下系统的临时文件、缓存等无用数据文件&#xff0c;C盘终…

PHP灵活用工任务小灵通微信小程序系统源码

&#x1f4bc;灵活赚钱新风尚&#xff01;灵活用工任务小灵通微信小程序&#xff0c;兼职自由两不误&#x1f680; &#x1f50d; 一、海量任务&#xff0c;随时随地接单赚外快 还在为找不到合适的兼职而烦恼吗&#xff1f;&#x1f914; 灵活用工任务小灵通微信小程序&#…

数字交流便携式电阻式三相负载组

三相型号选项范围从小型、便携式、低功耗单元到大功率、室内和室外永久电阻负载组。型号标配按钮式手动控制以及 PC 软件控制&#xff0c;为处理复杂的测试应用提供先进的负载曲线解决方案。这些装置适用于各种用途&#xff0c;包括测试发电机、UPS 系统、数据中心电源系统、电…

3D非遗刺绣作品数字化展厅身临其境地感受艺术的魅力与力量

走进3D艺术画展&#xff0c;一场颠覆传统的视觉盛宴即将上演。在这里&#xff0c;静态的观赏被赋予了全新的生命&#xff0c;观众将亲身体验到前所未有的参与性和互动性。 不同于传统的美术展览&#xff0c;3D艺术画展打破了旧有的观展形式&#xff0c;将艺术与科技完美结合&am…

前端画图引擎ZRender,echarts的渲染器,你知道吗?

Zrender是一个轻量级的Canvas和SVG渲染库&#xff0c;它提供了一个高性能的图形绘制和交互的解决方案&#xff0c;用于在Web页面上创建丰富的数据可视化和交互式图形。 可能大部分小伙伴不知道这个类库&#xff0c;本文给大家科普一下。 一、Zrender是谁&#xff1f; 该项目…

B端工作台如何设计?指导思想+布局建议+大厂案例全给你

一、B端工作台设计的指导思想 要做好B端工作台设计&#xff0c;以下是一些建议和策略&#xff1a; 1. 用户研究&#xff1a;深入了解目标用户的需求、行为和工作流程。通过用户研究方法&#xff0c;如用户访谈、观察和调研&#xff0c;收集用户反馈和意见&#xff0c;了解他们…

RoPE旋转位置编码从复数到欧拉公式

第二部分 从复数到欧拉公式 先复习下复数的一些关键概念 我们一般用表示复数&#xff0c;实数a叫做复数的实部&#xff0c;实数b叫做复数的虚部 复数的辐角是指复数在复平面上对应的向量和正向实数轴所成的有向角 的共轭复数定义为&#xff1a;&#xff0c;也可记作&#xff0…

windows环境下部署多个端口Tomcat服务和开机自启动设置保姆级教程

前言 本文主要介绍了 windows环境下&#xff0c;配置多个Tomcat设置不同端口启动服务。其实在思路上Linux上也是适用的&#xff0c;只是 Linux 上没有可视化客户端&#xff0c;会麻烦些&#xff0c;但总体的思路上是一样的。 注&#xff1a;文章中涉及些文字和图片是搬运了其他…

【分布式系统三】监控平台Zabbix对接grafana(截图详细版)

目录 一.安装grafana并启动 二.浏览器访问 三.导入zabbix数据&#xff0c;对接grafana 四.如何导入模版 以前两篇博客为基础 【分布式系统】监控平台Zabbix介绍与部署&#xff08;命令截图版&#xff09;-CSDN博客 【分布式系统】监控平台Zabbix自定义模版配置-CSDN博客 …

上海亚商投顾:沪指低开低走 全市场下跌个股超4800只

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数昨日低开低走&#xff0c;尾盘集体跌超1%&#xff0c;北证50、微盘股指数跌逾3%。 板块概念方面&…

发那科机床联网串口配置

本文章仅针对无网口&#xff0c;需要通过串口输出采集数据情况。跟这篇文章互为参考&#xff0c;一个理论&#xff0c;一个实战。 Fanuc DPRNT宏程序串口采集-CSDN博客 一、禁用机器串口监控 选择System、monit 二、设置参数可写 在MDI模式中字符面板上按OFS/SET键,连按致屏…

NET Core 中的空对象设计模式

介绍 一种称为“空对象模式”的行为设计模式提供了一个对象来表示接口缺少的对象。在空对象会导致空引用异常的情况下&#xff0c;这是一种提供替代行为的方法。在本文中&#xff0c;我们将深入探讨 C# 空对象模式&#xff0c;并逐步解决更复杂的情况。 空对象设计模式它是什…

使用 C# 训练大型语言模型和小型语言模型

介绍 训练大型语言模型 (LLM) 和小型语言模型 (SLM) 在人工智能和机器学习领域获得了巨大的关注。这些模型能够理解和生成类似人类的文本&#xff0c;具有从聊天机器人到高级数据分析的广泛应用。本文探讨了使用 C#&#xff08;一种在企业环境中广泛使用的面向对象编程语言&am…

Leetcode—93. 复原 IP 地址【中等】

2024每日刷题&#xff08;140&#xff09; Leetcode—93. 复原 IP 地址 实现代码 class Solution { public:vector<string> restoreIpAddresses(string s) {vector<string> ans;vector<string> path;function<void(int)>dfs [&](int start) {if…

哪里有主机游戏店收费系统,佳易王电玩ps5ps4计时计费系统操作教程

哪里有主机游戏店收费系统&#xff0c;佳易王电玩ps5ps4计时计费系统操作教程 以下软件操作教程以&#xff0c;佳易王计时计费管理系统为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 一、软件程序图文讲解 1、主机游戏计时软件、电玩店计费软…

电子版盖章怎么弄(电子版公章怎么盖上)

下面是利用e章宝盖电子公章更简单&#xff0c;从印章库中选中要盖的公章&#xff0c;然后在文档中想要盖的位置单击一下即可&#xff1a; 第一步&#xff1a;制作需要盖的电子印章 一般是先扫描公章&#xff0c;然后使用e章宝的一键抠章功能&#xff0c;把印章导入到印章库中…

(三)前端javascript中的数据结构之集合

集合的特点 1.无序 2.唯一性 3.不可重复 集合相对于前面几种数据结构&#xff0c;比较简单好理解&#xff0c;看看代码实现就能知道他的用法了 集合的创建 function MySet() {this.item {}; } MySet.prototype.has function (value) {return value in this.item; };//增 M…

Golang | Leetcode Golang题解之第224题基本计算器

题目&#xff1a; 题解&#xff1a; func calculate(s string) (ans int) {ops : []int{1}sign : 1n : len(s)for i : 0; i < n; {switch s[i] {case :icase :sign ops[len(ops)-1]icase -:sign -ops[len(ops)-1]icase (:ops append(ops, sign)icase ):ops ops[:len(o…

如何忽略部分文件或者文件夹在git提交项目时

嗨&#xff0c;我是兰若&#xff0c;最近发现有些小伙伴在提交代码时&#xff0c;总是把不该提交的文件&#xff0c;比如说本地批跑的缓存文件给提交到了git上面&#xff0c;导致别人在拉取代码的时候&#xff0c;也会把这部分文件拉取到自己本地&#xff0c;从而导致和本地的缓…