当前位置: 首页 > news >正文

day03(11.1)——leetcode面试经典150

哈哈哈哈,漏了一天,安阳这个城市还是很恐怖的,昨天出去玩忘记带口罩了,回来的是时候骑车回来,结果应该是吸多了雾霾,头巨晕,就写不动了,所以今天写两题。

135. 分发糖果

135. 分发糖果

题目:

我打开这个题目的时候看到是困难,想着挑战一下,结果对于我这个小白菜来说真是挺困难,但好在最后还是写出来了!!!

但我的纯纯就是笨办法

题解:

我先讲解一下我的思路:我想的是先把他们起始糖果数设成0,但是起始总糖果数是加上了起始糖果数至少为1,所以起始糖果数是ratings.length,然后我再进行判断每一个糖果的相邻结点。

        如果左边节点存在,那么当左边节点的评分比当前节点更低,并且左边节点的糖果数大于等于当前节点,当前节点的糖果数必须比左边节点糖果数大,所以flag[i]设置成flag[i-1]+1;

        如果右边节点也存在,那么当右边节点的评分比当前节点更低,并且右边结点的糖果数大于等于当前结点,当前节点的糖果数必须比右边结点糖果数大,所以将flag[i]设置成flag[i+1]+1;

        但是从左边遍历一遍是可能会有问题的,比如下面这个例子:
1 2 87 87 87 2 1,会有问题,所以需要从右向左再遍历一遍。

class Solution {public int candy(int[] ratings) {int[] flag =  new int[ratings.length];int candy = ratings.length;for(int i=0;i<ratings.length;i++) {if(i-1 >= 0 && ratings[i] > ratings[i-1]  && flag[i] <= flag [i-1] ) {flag[i] = flag[i-1]+1;}else if(i+1 <= ratings.length-1 && ratings[i] > ratings[i+1] && flag[i] <= flag [i+1] ) {flag[i] = flag[i+1]+1;}}for(int i=ratings.length-1;i>=0;i--) {if(i-1 >= 0 && ratings[i] > ratings[i-1]  && flag[i] <= flag [i-1] ) {flag[i] = flag[i-1]+1;}else if(i+1 <= ratings.length-1 && ratings[i] > ratings[i+1] && flag[i] <= flag [i+1] ) {flag[i] = flag[i+1]+1;}candy += flag[i];}return candy;}
}

13. 罗马数字转整数

13. 罗马数字转整数

题目:

题解:

这道题我就是采用if else的判断方法,要记得字符串访问字符的方式是通过s.chatAt(i),不是通过[i]的方式,c++有点写习惯了哈哈哈

class Solution {public int romanToInt(String s) {int sum=0;for(int i=0;i<s.length();i++) {if(i+1<s.length()) {if(s.charAt(i)=='I'&&s.charAt(i+1)=='V') {sum+=4;i+=1;continue;}else if(s.charAt(i)=='I'&&s.charAt(i+1)=='X') {sum+=9;i+=1;continue;}else if(s.charAt(i)=='X'&&s.charAt(i+1)=='L') {sum+=40;i+=1;continue;}else if(s.charAt(i)=='X'&&s.charAt(i+1)=='C') {sum+=90;i+=1;continue;}else if(s.charAt(i)=='C'&&s.charAt(i+1)=='D') {sum+=400;i+=1;continue;}else if(s.charAt(i)=='C'&&s.charAt(i+1)=='M') {sum+=900;i+=1;continue;}}if(s.charAt(i) == 'I') {sum+=1;}else if(s.charAt(i) == 'V') {sum+=5;}else if(s.charAt(i) == 'X') {sum+=10;}else if(s.charAt(i) == 'L') {sum+=50;}else if(s.charAt(i) == 'C') {sum+=100;}else if(s.charAt(i) == 'D') {sum+=500;                }else if(s.charAt(i) == 'M') {sum+=1000;}}return sum;}
}

http://www.dtcms.com/a/557084.html

相关文章:

  • 《算法通关指南:数据结构和算法篇 --- 顺序表相关算法题》---移动零,颜色分类
  • 视觉差网站制作百度站长统计
  • 求职专栏-【面试-自我介绍】
  • Chroma向量数据库详解:高效向量检索在AI应用中的实践指南
  • 【开题答辩全过程】以 风聆精酿啤酒销控一体系统的设计与实现为例,包含答辩的问题和答案
  • 二.docker安装与常用命令
  • 珠海网红打卡景点网站排名优化首页
  • 计算机网络Day01
  • QCES项目Windows平台运行指南
  • 多线程编程:条件变量、同步、竞态条件与生产者消费者模型
  • 怎么做高端品牌网站设计潍坊市住房和城乡建设网站
  • 哪个协会要做网站建设啊甘肃做网站哪家专业
  • springcloud : 理解Sentinel 熔断与限流服务稳定性的守护神
  • Webpack Tree Shaking 原理与实践
  • 一文讲透 npm 包版本管理规范
  • Qt 绘画 Widget 详解:从基础到实战
  • 【计算机网络】深入理解网络层:IP地址划分、CIDR与路由机制详解
  • 力扣3281. 范围内整数的最大得分
  • 力扣hot100----15.三数之和(java版)
  • 网站建设最重要的是什么什么是网站的主页
  • 影视传媒网站源码成华区建设局网站
  • 快速搭建网站 开源网络营销推广的目的是什么
  • 超越传统:大型语言模型在文本分类中的突破与代价
  • 【洛谷算题】顺序,分支,循环结构部分题目分享
  • Jmeter吞吐量控制器详解
  • 最全网站源码分享哈尔滨建设发展集团有限责任公司
  • 机器学习-KNN算法示例
  • 【随机访问介质访问控制-1】为什么纯 ALOHA 效率不到 20%?3 大随机访问 MAC 协议拆解
  • 有关电子商务网站建设与维护的书籍具有价值的响应式网站
  • C++笔记(面向对象)定义虚函数规则 运行时多态原理