LeetCode-1523/1491/860/976

news2024/11/20 3:26:47

1.在区间范围内统计奇数数目(1523)

题目描述:

给你两个非负整数 low 和 high 。请你返回 low 和 high 之间(包括二者)奇数的数目。
在这里插入图片描述
思路一: 这里肯定会想到以low和high分别为上下限,然后遍历如果为奇数就将设置的计数加一即可,但是这样会超时,所以不能一个一个遍历。可以改良一下,先在上下限内找到第一个奇数后再每次加二的速度来遍历这样提交就能通过了。

思路二: 这是官方题解中的思路,简单清晰。先求1到low-1的奇数个数,再求1到high的奇数个数,相减即可。因为1到一个数字num的范围内的奇数个数是(num+1)/2,所以这个思路代码写起来很简单。

代码:

class Solution {
    public int countOdds(int low, int high) {
    
        //return countOdds1(low,high);
        return countOdds2(low,high);
    }

    public int countOdds2(int low,int high) {
        return (high+1)/2-low/2;
    }
    public int countOdds1(int low, int high) {
        int count=0;
        if(low%2==0) {
            low+=1;
        }

        for(int i=low;i<=high;i+=2) {
            count++;
        }
        return count;
    }
}

2.去掉最低工资和最高工资后的工资平均值(1491)

题目描述:

给你一个整数数组 salary ,数组里每个数都是 唯一 的,其中 salary[i] 是第 i 个员工的工资。

请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。
在这里插入图片描述
思路: 这题很简单,遍历数组同时设置两个变量max和min分别记录最大值和最小值,以及设置一个变量来累加数组中元素,然后返回值就是累加值减掉max和min。

代码:

class Solution {
    public double average(int[] salary) {
        int max=0,min=Integer.MAX_VALUE;
        int sum=0;
        for(int i=0;i<salary.length;i++) {
            sum+=salary[i];
            if(max<=salary[i]) {
                max=salary[i];
            }
            if(min>=salary[i]) {
                min=salary[i];
            }
        }

        return (double)(sum-max-min)/(salary.length-2);

    }
}

3.柠檬水找零(860)

题目描述:

在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。

每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。

注意,一开始你手头没有任何零钱。

给你一个整数数组 bills ,其中 bills[i] 是第 i 位顾客付的账。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。
在这里插入图片描述
思路: 在遍历bills数组之前先建立一个数组记录5,10,20美元的数目,然后开始遍历bills数组,如果是5就将数目加一。如果是10就先判断5的数目是否大于等于1因为这样才能找开,如果大于等于1,5的数目减一,10的数目加一。如果是20,分两种情况,如果5的数目大于等于1并且10大于等于1那么可以找开,如果5的数目大于等于3也可以找开。具体看代码。

代码:

class Solution {
    public boolean lemonadeChange(int[] bills) {
        int sum=0;
        int[] record=new int[3];
        for(int i=0;i<bills.length;i++) { 
            switch(bills[i]) {
                case 5:
                    record[0]+=1;
                    break;
                case 10:
                    if(record[0]<1) {
                        return false;
                    } else {
                        record[0]-=1;
                        record[1]+=1;
                    }
                    break;
                case 20:
                    if(record[0]>=1&&record[1]>=1) {
                        record[0]-=1;
                        record[1]-=1;
                        record[2]+=1;
                        
                    } else if(record[0]>=3) {
                        record[0]-=3;
                        record[2]+=1;
                        
                    } else {
                        return false;
                    }
                    break;
                    
            }
            
        }
        return true;
    }
}

4.三角形的最大周长(976)

题目描述:

给定由一些正数(代表长度)组成的数组 nums ,返回 由其中三个长度组成的、面积不为零的三角形的最大周长 。如果不能形成任何面积不为零的三角形,返回 0。
在这里插入图片描述
思路: 这题很简单,首先排序数组,之后从数组尾部开始遍历,如果有满足三角形条件的就直接返回三条边的和。这个值肯定是最大的周长,这里遍历的一点点细节看代码。

代码:

class Solution {
    public int largestPerimeter(int[] nums) {
        int max=0;
        Arrays.sort(nums);
        for(int i=nums.length-1;i>=2;i--) {
            if(nums[i]<nums[i-1]+nums[i-2]) {
                return nums[i]+nums[i-1]+nums[i-2];
            }
        }
        return 0;
    }
}

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

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

相关文章

TRB 2024论文分享:基于生成对抗网络和Transformer模型的交通事件检测混合模型

TRB&#xff08;Transportation Research Board&#xff0c;美国交通研究委员会&#xff0c;简称TRB&#xff09;会议是交通研究领域知名度最高学术会议之一&#xff0c;近年来的参会人数已经超过了2万名&#xff0c;是参与人数和国家最多的学术盛会。TRB会议几乎涵盖了交通领域…

第 380 场 LeetCode 周赛题解

A 最大频率元素计数 模拟&#xff1a;先统计元素的频率&#xff0c;然后求由最大频率的元素的总频率 class Solution { public:int maxFrequencyElements(vector<int> &nums) {unordered_map<int, int> cnt;for (auto x: nums)cnt[x];int mx 0, s 0;for (aut…

Linux------进程的初步了解

目录 一、什么是进程 二、进程的标识符pid 三、getpid 得到进程的PID 四、kill 终止进程 五、父进程与子进程 六、目录中的进程 一、什么是进程 在windows中&#xff0c;我们查看进程很简单&#xff0c;打开任务管理器&#xff0c;就可以看到在运行的进程。这里我们还可以…

跟着暄桐林曦老师读《宝贵的人生建议》,重视心这颗种子

暄桐林曦老师在《见道明心的笔墨》读书课上讲到&#xff1a;人要在心这颗种子上去进化。当人的动机和果实都清静时&#xff0c;才能在内心具足里转化出更多可能性&#xff0c;进入正面的循环里。“宽以待人&#xff0c;严以律己&#xff0c;反之&#xff0c;则人人身处地狱”&a…

Tuxera NTFS for Mac v2023破解版百度云下载和激活

软件介绍 Tuxera NTFS for Mac破解版是一款mac读写NTFS磁盘工具软件&#xff0c;可以高效的读写NTFS格式的设备&#xff0c;对设备的存储空间进行访问、编辑、存储和传输文件等操作。此外这款软件还具备对硬盘等设备的管理以及修复检测功能&#xff0c;所以安装一款Tuxera NTF…

力扣日记1.14-【二叉树篇】108. 将有序数组转换为二叉搜索树

力扣日记&#xff1a;【二叉树篇】108. 将有序数组转换为二叉搜索树 日期&#xff1a;2023.1.14 参考&#xff1a;代码随想录、力扣 108. 将有序数组转换为二叉搜索树 题目描述 难度&#xff1a;简单 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;…

【C++】-类和对象(友元!!内部类!!匿名对象!详解)

类和对象⑤ 友元内部类匿名对象 在之前的类和对象①、②、③、④篇中&#xff0c;详细讲解了类和对象的基本知识&#xff0c;本章为最终章&#xff0c;继续为大家介绍类和对象。 友元 我们已知的&#xff0c;在C中&#xff0c;有一种私有访问修饰符&#xff0c;用于限制类的成…

this.setState的注意事项

目录 1、this.setState的注意事项 2、是什么造成了this.setState()的不同步&#xff1f; 3、 那this.setState()什么时候同步&#xff0c;什么时候不同步&#xff1f; 3.1 经过React包装的onClick点击事件&#xff08;&#xff09; 3.2 没经过React包装的 原生点击事件 …

stm32学习笔记:USART串口通信

1、串口通信协议&#xff08;简介软硬件规则&#xff09; 全双工&#xff1a;打电话。半双工&#xff1a;对讲机。单工&#xff1a;广播 时钟&#xff1a;I2C和SPI有单独的时钟线&#xff0c;所以它们是同步的&#xff0c;接收方可以在时钟信号的指引下进行采样。串口、CAN和…

18 串口通讯

文章目录 18.0 前言18.1 串口通讯协议简介18.1.1 物理层 18.2 RT1052 的 LPUART 简介18.3 UART 功能框图18.3.1 中断控制 18.4 UART 初始化结构体详解18.4.1 baudRate_Bps18.4.2 parityMode18.4.3 dataBitsCount18.4.4 isMsb18.4.5 stopBitCount18.4.6 txFifoWatermark与rxFifo…

计算机体系结构基础复习

1. 计算机系统可划分为哪几个层次,各层次之间的界面是什么? 你认为这样划分层次的意义何在? 答&#xff1a; 计算机系统可划分为四个层次&#xff0c;分别是&#xff1a;应用程序、 操作系统、 硬件系统、 晶体管四个大的层次。 注意把这四个层次联系起来的三个界面。各层次…

WIndows系统重装、备份与恢复实操问题笔记

一 windows重装 1.1 基本步骤 下载大白菜根据官网使用教程制作启动u盘从MSDN或者微软官网下载Windows镜像根据查询的快捷键进入BIOS系统&#xff0c;设置U盘为第一启动 重装 1.2 Windows 11 激活 微软其实在2023年9月20日的公告中宣布停掉免费升级&#xff0c;数字激活工具…

使用pygame实现简单的烟花效果

import pygame import sys import random import math# 初始化 Pygame pygame.init()# 设置窗口大小 width, height 800, 600 screen pygame.display.set_mode((width, height)) pygame.display.set_caption("Fireworks Explosion")# 定义颜色 black (0, 0, 0) wh…

YOLOv7涨点改进:多层次特征融合(SDI),小目标涨点明显,| UNet v2,比UNet显存占用更少、参数更少

💡💡💡本文全网独家改进:多层次特征融合(SDI),能够显著提升不同尺度和小目标的识别率 💡💡💡在YOLOv7中如何使用 1)iAFF加入Neck替代Concat; 收录: YOLOv7高阶自研专栏介绍: http://t.csdnimg.cn/tYI0c ✨✨✨前沿最新计算机顶会复现 🚀🚀🚀YOL…

Linux远程登陆协议ssh

目录 一、SSH服务 1. ssh基础 2. 原理 3. 服务端配置 3.1 常用配置项 3.2 具体操作 3.2.1 修改默认端口号 3.2.2 禁止root用户登录 3.2.3 白名单列表 3.2.4 黑名单列表 3.2.5 使用秘钥对及免交互验证登录 3.2.6 免交互式登录 一、SSH服务 1. ssh基础 SSH&…

Microsoft Excel 直方图

Microsoft Excel 直方图 1. 数据示例2. 打开 EXCEL3. settings4. 单击直方图柱&#xff0c;右键“添加数据标签”References 1. 数据示例 2. 打开 EXCEL 数据 -> 数据分析 -> 直方图 3. settings 输入区域样本值、接受区域分类间距&#xff0c;输出选项选择“新工作表组…

玩转Mysql 八 (MySQ优化入门篇)

一路走来&#xff0c;所有遇到的人&#xff0c;帮助过我的、伤害过我的都是朋友&#xff0c;没有一个是敌人。如有侵权&#xff0c;请留言&#xff0c;我及时删除&#xff01; 前言&#xff1a; 一个高性能&#xff0c;稳定的数据库集群并不是指的某一特性优化&#xff0c;就…

3 - AOP

1. 快速入门 1.1 基本说明 AOP(aspect oriented programming) &#xff0c;面向切面编程 切面类中声明通知方法&#xff1a; 前置通知&#xff1a;Before返回通知&#xff1a;AfterReturning异常通知&#xff1a;AfterThrowing后置通知&#xff1a;After环绕通知&#xff1…

并发List源码剖析

并发包中的并发List只有CopyOnWriteArrayList。 CopyOnWriteArrayList是一个线程安全的ArrayList,对其进行的修改操作都是在底层的一个复制的数组(快照)上进行的&#xff0c;也就是使用了写时复制策略。 在CopyOnWriteArrayList的类图中&#xff0c;每个CopyOnWriteArrayList对…

(学习日记)2024.01.05:一份关于自行车定位的调研

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…