【每日刷题】Day11

news2024/11/22 23:48:42

【每日刷题】Day11

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

目录

1. 860. 柠檬水找零 - 力扣(LeetCode)

2. 976. 三角形的最大周长 - 力扣(LeetCode)

3. 1232. 缀点成线 - 力扣(LeetCode)

1. 860. 柠檬水找零 - 力扣(LeetCode)

//思路:这题实际上只需要判断5元钱的剩余数。

bool lemonadeChange(int* bills, int billsSize)

{

    int i = 0;

    int five = 0;//用于记录收到5元的数量

    int ten = 0;//用于记录收到10元的数量

    for(i = 0;i<billsSize;i++)

    {

        if(bills[i]==5)

        {

            five++;//收到5元,five++

        }

        else if(bills[i]==10)

        {

            ten++;//收到10元需要找回顾客5元,多一张10元

            five--;

        }

        else

        {

            if(ten>0)

            {

                ten--;//收到20元时,需要判断收到的10元个数,如果不为0,则可以用10元与5元结合找回给顾客

                five--;

            }

            else

            {

                five-=3;//否则只能找3张5元给顾客

            }

        }

        if(five<0)

        {

            return false;//如果最后5元数量小于0了,说明有顾客无法正确找零

        }

    }

    return true;

}

2. 976. 三角形的最大周长 - 力扣(LeetCode)

//思路:将数组先排为降序,然后从头开始三个三个遍历,因为是降序,所以需要让i+2和i+1的和大于i才能成为三角形。并且,因为是降序,所以第一个找到的能成为三角形的数据组一定是最大的

int largestPerimeter(int* nums, int numsSize)

{

    int i = 0;

    int j = 0;

    for(i = 0;i<numsSize-1;i++)

    {

        for(j = 0;j<numsSize-i-1;j++)

        {

            if(nums[j]<nums[j+1])

            {

                int tmp = nums[j];

                nums[j] = nums[j+1];//使用冒泡排序(这里可以有更好的排序算法)将数组排为降序

                nums[j+1] = tmp;

            }

        }

    }

    for(i = 0;i<numsSize-2;i++)

    {

        if(nums[i+2]+nums[i+1]>nums[i])

        {

            return nums[i]+nums[i+1]+nums[i+2];//只要找到一个能成为三角形的数据组直接返回,一定是最大的

        }

    }

    return 0;

}

3. 1232. 缀点成线 - 力扣(LeetCode)

//思路:两点确定一条直线。将第一个点移回原点,后面的点根据第一个点的位移情况相应地位移;再根据原点和第二个点创建一条直线,将后面点地x、y带入方程中,通过判断方程是否有解来判断该点是否在直线上。需要注意地是,这里我们需要考虑直线平行于x、y轴的情况。

bool checkStraightLine(int** coordinates, int coordinatesSize, int* coordinatesColSize)

{

    int i = 0;

    int flag = 1;//用于判断方程是否有解

    int flag1 = 1;//用于判断直线是否平行于y轴

    int flag2 = 1;//用于判断直线是否平行于x轴

    int equ = 0;//方程

    int firstx = coordinates[0][0];//记录第一个点的x坐标,因为后面会改变第一个点的x、y坐标,因此这里需要记录初始值

    int firsty = coordinates[0][1];//记录第一个点的y坐标

    for(i = 0;i<coordinatesSize;i++)//将第一个点移动到原点,并相应移动后面的点

    {

        coordinates[i][0]-= firstx;

        coordinates[i][1]-= firsty;

    }

    for(i = 0;i<coordinatesSize-1;i++)//判断直线是否平行于y轴

    {

        if(coordinates[i][0]!=coordinates[i+1][0])

        {

            flag1 = 0;

        }

    }

    for(i = 0;i<coordinatesSize-1;i++)//判断直线是否平行于x轴

    {

        if(coordinates[i][1]!=coordinates[i+1][1])

        {

            flag2 = 0;

        }

    }

    if(flag1)//如果flag1不为0,则说明直线平行于y轴,直接返回true

    {

        return true;

    }

    if(flag2)//如果flag2不为0,则说明直线平行于x轴,直接返回true

    {

        return true;

    }

    for(i = 2;i<coordinatesSize;i++)//直线不平行于x轴也不平行于y轴,则通过方程判断每个点是否都在给定直线上

    {

        equ = ((coordinates[1][1]*coordinates[i][0])-(coordinates[1][0]*coordinates[i][1]));

        if(equ!=0)

        {

            flag = 0;

            break;

        }

    }

    if(flag)//如果flag不为0,则说明每个点都在直线上,返回true

    {

        return true;

    }

    return false;

}

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

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

相关文章

--每周分享--

分享内容&#xff1a; 1.单链表的归并排序 2.一道有趣的思考题 分享细节&#xff1a; 单链表的归并排序 主要思想&#xff1a;递归 怎么理解&#xff1f;下面具体说明&#xff1a; 1.首先&#xff0c;我从整体的思考步骤说明&#xff1a;先分区&#xff0c;再排序&#…

3d里怎么让模型直接显示材质---模大狮模型网

在3D设计和渲染中&#xff0c;使模型直接显示材质是一个常见但也关键的需求。直接显示材质可以帮助设计师更直观地预览和编辑模型的外观&#xff0c;从而提高工作效率并确保最终效果符合预期。本文将介绍一些方法和技巧&#xff0c;帮助你在3D设计中实现模型直接显示材质的目标…

防火墙搭建内网 安装路由器

经典网络情况 也就是网吧 先配置网段 科普&#xff1a;子网掩码代表IP前面几位不能动 安装防火墙虚拟机 配置两个网卡 第一个 第二个桥接 设置子网掩码 虚拟机有DHCP 可以不用防火墙的DHCP 配置有网站的ip地址和网关 利用防火墙映射出去外网 然后看防火墙外网ip 然后…

C++三大特性(1)——继承

一.继承的概念及定义 概念 继承&#xff08;inheritance&#xff09;机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保存原有类特性的基础上进行拓展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称为派生类。继承呈现了面向…

set用法

ES6中的Set是一种新的数据结构&#xff0c;类似于数组&#xff0c;用于存储有序的数据。Set没有随机访问的能力&#xff0c;不能通过索引来获取具体的某个元素Set中的元素具有唯一性&#xff0c;不允许存储相同的元素。 Set本身是一个构造函数&#xff0c;可以用来实例化Set对…

计算机网络—HTTPS协议详解:工作原理、安全性及应用实践

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;ヒューマノイド—ずっと真夜中でいいのに。 1:03━━━━━━️&#x1f49f;──────── 5:06 &#x1f504; ◀️ ⏸…

陆面、生态、水文模拟与多源遥感数据同化

原文链接&#xff1a;陆面、生态、水文模拟与多源遥感数据同化https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247601198&idx6&sn51b9b26b75c9df1f11dcb9a187878261&chksmfa820dc9cdf584df9ac3b997c767d63fef263d79d30238a6523db94f68aec621e1f91df85f6…

VMware 安装配置 Ubuntu(最新版、超详细)

1. 下载安装 VMware ➡️➡️➡️来源&#xff1a;VMware Docs VMware Workstation Pro™ 使专业技术人员能够在同一台 PC 上同时运行多个基于 x86 的 Windows、Linux 和其他操作系统&#xff0c;从而开发、测试、演示和部署软件。 [Step 1]&#xff1a; 点击 VMware Workstati…

【Java探索之旅】从输入输出到猜数字游戏

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; Java编程秘籍 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一、输入输出1.1 输出到控制台1.2 从键盘输入 二、猜数字游戏2.1 所需知识&#xff1a…

【TI毫米波雷达】I2C初始化配置和主机数据收发,用SDA来模拟UART数据输出,可直接连接IWR6843AOP开发板引脚

【TI毫米波雷达】I2C初始化配置和主机数据收发&#xff0c;用SDA来模拟UART数据输出&#xff0c;可直接连接IWR6843AOP开发板引脚 文章目录 导入库引脚复用初始化I2C配置数据发送用SDA来模拟UART数据输出附录&#xff1a;结构框架雷达基本原理叙述雷达天线排列位置芯片框架Demo…

数据结构-----枚举、泛型进阶(通配符?)

文章目录 枚举1 背景及定义2 使用3 枚举优点缺点4 枚举和反射4.1 枚举是否可以通过反射&#xff0c;拿到实例对象呢&#xff1f; 5 总结 泛型进阶1 通配符 ?1.1 通配符解决什么问题1.2 通配符上界1.3 通配符下界 枚举 1 背景及定义 枚举是在JDK1.5以后引入的。主要用途是&am…

【Linux】进程通信之匿名管道通信

一、进程间进行通信的目的 我们往往需要多个进程协同&#xff0c;共同完成一些事情。 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程资源共享&#xff1a;多个进程之间共享同样的资源。通知事件&#xff1a;一个进程需要向另一个或一组进程发送消息&#xff0c…

Netty NioEventLoop详解

文章目录 前言类图主要功能NioEventLoop如何实现事件循环NioEventLoop如何处理多路复用Netty如何管理Channel和Selector管理Channel管理Selector注意事项 前言 Netty通过事件循环机制(EventLoop)处理IO事件和异步任务&#xff0c;简单来说&#xff0c;就是通过一个死循环&…

23年坚守,只为打造高品质立秀膨体,索康让品质为中国说话

2024年3月23日&#xff0c;第二十三届上海国际整形美容外科大会&#xff08;以下简称“大会”&#xff09;在上海召开&#xff0c;本次大会由张涤生整形外科发展基金会主办&#xff0c;上海交通大学附属第九人民医院整复外科、Chinese Journal of Plastic and Reconstructive S…

性能优化 - 你知道CSS有哪些优化方案吗

难度级别:中高级及以上 提问概率:70% CSS是前端开发工作中必不可少的技能之一,同时也是网页开发中必不可少的重要元素之一。但很多人所开发的项目本身对性能要求并不高,再加上项目周期紧张,久而久之,也就容易养成不考虑细节的习惯,觉得C…

NzN的数据结构--二叉树part2

上一章我们介绍了二叉树入门的一些内容&#xff0c;本章我们就要正式开始学习二叉树的实现方法&#xff0c;先三连后看是好习惯&#xff01;&#xff01;&#xff01; 目录 一、二叉树的顺序结构及实现 1. 二叉树的顺序结构 2. 堆的概念及结构 3. 堆的实现 3.1 堆的创建 …

04-12 周五基于VS code + Python实现CSDN发布文章的自动生成

简介 之前曾经说过&#xff0c;在撰写文章之后&#xff0c;需要&#xff0c;同样需要将外链的图像转换为的形式&#xff0c;因此&#xff0c;可以参考 04-12 周五 基于VS Code Python 实现单词的自动提取 配置步骤 配置task 在vscode的命令面板configure task。配置如下的任…

python知识点汇总(十一)

python知识点总结 1、当Python退出时&#xff0c;是否会清除所有分配的内存&#xff1f;2、Python的优势有哪些&#xff1f;3、什么是元组的解封装4、Python中如何动态获取和设置对象的属性&#xff1f;5、创建删除操作系统上的文件6、主动抛出异常7、help() 函数和 dir() 函数…

人工智能基础部分26-基于知识推理引擎KIE算法的原理介绍与实际应用

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能基础部分26-基于知识推理引擎KIE算法的原理介绍与实际应用。知识推理引擎(Knowledge Inference Engine, KIE)是一种人工智能技术&#xff0c;其核心原理是基于规则和逻辑的方法来处理复杂的问题。它构建在业…

从前端角度防范XSS攻击的策略与实践

XSS&#xff08;Cross-Site Scripting&#xff0c;跨站脚本攻击&#xff09;是一种常见的网络安全威胁&#xff0c;它允许攻击者将恶意脚本注入到正常的网页中&#xff0c;从而在其他用户的浏览器上执行这些脚本。这可能导致数据泄露、会话劫持、甚至是对受害者计算机的完全控制…