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

泰安做网站建设的公司日照网络推广公司

泰安做网站建设的公司,日照网络推广公司,wordpress vul,asp做网站上传文件系统738. 单调递增的数字 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0c;且数字呈 单调递增 。 示例 1: 输入: n 10 输出: 9 思路: 假设这个数是98,…

738. 单调递增的数字

当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。

给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 。

示例 1:

输入: n = 10
输出: 9

思路:

假设这个数是98,n[i]>n[i+1],让n[i]--,n[i+1]=9,即98的单调递增数就是89

如果从前往后遍历,n[i+1]不仅受n[i]影响,还受n[i+2]影响,例如332->329 这时 3又比2大了

如果从后往前遍历,332->329->299,重复利用了上一次的结果

总体来说,从后往前遍历,遇见n[i]<n[i+1]的情况,让n[i]-1,让i+1与之后的位置都变为9

class Solution {public int monotoneIncreasingDigits(int n) {String s=String.valueOf(n);char[] chars=s.toCharArray();int index=s.length();//记录开始填9的位置for(int i=chars.length-2;i>=0;i--){if(chars[i]>chars[i+1]){chars[i]--;index=i+1;}}for(int i=index;i<s.length();i++ ){chars[i]='9';}return Integer.parseInt(String.valueOf(chars));}
}

968. 监控二叉树

给定一个二叉树,我们在树的节点上安装摄像头。

节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。

计算监控树的所有节点所需的最小摄像头数量。

示例 1:

输入:[0,0,null,0,0]
输出:1
解释:如图所示,一台摄像头足以监控所有节点。

示例 2:

输入:[0,0,null,0,null,0,null,null,0]
输出:2
解释:需要至少两个摄像头来监视树的所有节点。 上图显示了摄像头放置的有效位置之一。


提示:

  1. 给定树的节点数的范围是 [1, 1000]
  2. 每个节点的值都是 0。

思路:

把摄像头优先放在叶节点的父节点上

所以我们要从下往上看,局部最优:让叶子节点的父节点安摄像头,所用摄像头最少,整体最优:全部摄像头数量所用最少!

在二叉树中如何从低向上推导呢?

可以使用后序遍历也就是左右中的顺序,这样就可以在回溯的过程中从下到上进行推导了。

如何隔两个节点放一个摄像头?

我们分别有三个数字来表示:

  • 0:该节点无覆盖
  • 1:本节点有摄像头
  • 2:本节点有覆盖

遇见空结点怎么办?

 空节点的状态只能是有覆盖,这样就可以在叶子节点的父节点放摄像头了

单层递归逻辑: 

  • 情况1:左右节点都有覆盖

左孩子有覆盖,右孩子有覆盖,那么此时中间节点应该就是无覆盖的状态了。

  • 情况2:左右节点至少有一个无覆盖的情况

如果是以下情况,则中间节点(父节点)应该放摄像头:

  • left == 0 && right == 0 左右节点无覆盖
  • left == 1 && right == 0 左节点有摄像头,右节点无覆盖
  • left == 0 && right == 1 左节点有无覆盖,右节点摄像头
  • left == 0 && right == 2 左节点无覆盖,右节点覆盖
  • left == 2 && right == 0 左节点覆盖,右节点无覆盖

这个不难理解,毕竟有一个孩子没有覆盖,父节点就应该放摄像头。

此时摄像头的数量要加一,并且return 1,代表中间节点放摄像头。

  • 情况3:左右节点至少有一个有摄像头

如果是以下情况,其实就是 左右孩子节点有一个有摄像头了,那么其父节点就应该是2(覆盖的状态)

  • left == 1 && right == 2 左节点有摄像头,右节点有覆盖
  • left == 2 && right == 1 左节点有覆盖,右节点有摄像头
  • left == 1 && right == 1 左右节点都有摄像头

情况4:头结点没有覆盖

以上都处理完了,递归结束之后,可能头结点 还有一个无覆盖的情况

这时要给根节点加上摄像头

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {int res=0;//摄像头的个数public int minCameraCover(TreeNode root) {if(travel(root)==0)res++;//如果根节点没覆盖,给根节点加摄像头,因为根节点没有父节点return res;}public int travel(TreeNode cur){if(cur==null)return 2;//空结点表示有覆盖int left= travel(cur.left);int right= travel(cur.right);//如果左右都返回覆盖,则当前结点没覆盖if(left==2&&right==2){return 0;}else if(left==0||right==0){//如果左右有任一个没覆盖,则在当前结点加摄像头res++;return 1;} else{//如果左右有任一个有摄像头,则当前结点被覆盖return 2;}}
}

80. 翻转

时间限制:1.000S  空间限制:256MB

题目描述

小蓝用黑白棋的 n 个棋子排成了一行,他在脑海里想象出了一个长度为 n 的 01 串 T,他发现如果把黑棋当做 1,白棋当做 0,这一行棋子也是一个长度为 n 的 01 串 S。 小蓝决定,如果在 S 中发现一个棋子和它两边的棋子都不一样,就可以将其翻转变成另一个颜色。也就是说,如果 S 中存在子串 101 或者 010,就可以选择将其分别变为 111 和 000,这样的操作可以无限重复。 小蓝想知道最少翻转多少次可以把 S 变成和 T 一模一样。

输入描述

输入包含多组数据。 输入的第一行包含一个正整数 D 表示数据组数。 后面 2D 行每行包含一个 01 串,每两行为一组数据,第 2i − 1 行为第 i 组 数据的 Ti,第 2i 行为第 i 组数据的 Si,Si 和 Ti 长度均为 ni。

输出描述

对于每组数据,输出一行包含一个整数,表示答案,如果答案不存在请输出 −1。

输入示例
2
1000111
1010101
01000
11000
输出示例
2
-1
提示信息

对于 20% 的评测用例,1 ≤ ∑D1 ni ≤ 10 ; 对于所有评测用例,保证 1 ≤ ∑D1 ni ≤ 106 ,ni > 0 。

思路:从左往右遍历,遇见不一样的就翻转,注意开头和最后一个是不能翻转的

import java.util.*;
import java.util.stream.Stream;class Main{public static void main(String[] args){Scanner in=new Scanner(System.in);int n=in.nextInt();while(n-->0){String s1=in.next();String s2=in.next();System.out.println(solve(s1,s2));}}public static int solve(String s1,String s2){int count=0;for(int i=0;i<s1.length();i++){if(s1.charAt(i)==s2.charAt(i)){continue;}else{if(i==0||i==s2.length()-1||s2.charAt(i)==s2.charAt(i-1)||s2.charAt(i)==s2.charAt(i+1)){return -1; }count++;}}return count;}}


文章转载自:
http://detractor.c7629.cn
http://epineurial.c7629.cn
http://algebraist.c7629.cn
http://thixotropy.c7629.cn
http://innumerable.c7629.cn
http://hubble.c7629.cn
http://rootworm.c7629.cn
http://cymometer.c7629.cn
http://shoe.c7629.cn
http://sheepskin.c7629.cn
http://bashfully.c7629.cn
http://yaguarundi.c7629.cn
http://microlitre.c7629.cn
http://fluviology.c7629.cn
http://quadrantid.c7629.cn
http://rascality.c7629.cn
http://squirmy.c7629.cn
http://akinesia.c7629.cn
http://cornus.c7629.cn
http://electrohydraulics.c7629.cn
http://pilch.c7629.cn
http://dotey.c7629.cn
http://cosine.c7629.cn
http://lenitic.c7629.cn
http://atrip.c7629.cn
http://balanced.c7629.cn
http://vicissitudinary.c7629.cn
http://torchy.c7629.cn
http://legitimization.c7629.cn
http://brandied.c7629.cn
http://antiquarian.c7629.cn
http://declinate.c7629.cn
http://englishman.c7629.cn
http://hot.c7629.cn
http://viricide.c7629.cn
http://machicolate.c7629.cn
http://assaultive.c7629.cn
http://sheepmeat.c7629.cn
http://oriana.c7629.cn
http://directoire.c7629.cn
http://approved.c7629.cn
http://ardeid.c7629.cn
http://boulevard.c7629.cn
http://kowtow.c7629.cn
http://barbed.c7629.cn
http://aspersory.c7629.cn
http://uvual.c7629.cn
http://douche.c7629.cn
http://romping.c7629.cn
http://vincristine.c7629.cn
http://vitrifaction.c7629.cn
http://technicology.c7629.cn
http://pelycosaur.c7629.cn
http://adeni.c7629.cn
http://lairage.c7629.cn
http://rectangular.c7629.cn
http://normanesque.c7629.cn
http://htr.c7629.cn
http://radiophosphorus.c7629.cn
http://cinerin.c7629.cn
http://jogger.c7629.cn
http://prospect.c7629.cn
http://neoclassicism.c7629.cn
http://segregable.c7629.cn
http://derivative.c7629.cn
http://flurr.c7629.cn
http://savarin.c7629.cn
http://crura.c7629.cn
http://omdurman.c7629.cn
http://tetanus.c7629.cn
http://passing.c7629.cn
http://apb.c7629.cn
http://unfixed.c7629.cn
http://reinspect.c7629.cn
http://hardheaded.c7629.cn
http://coetaneous.c7629.cn
http://spermatozoa.c7629.cn
http://rifeness.c7629.cn
http://ajuga.c7629.cn
http://solemnly.c7629.cn
http://medulloblastoma.c7629.cn
http://depasture.c7629.cn
http://isomerize.c7629.cn
http://wrongful.c7629.cn
http://receive.c7629.cn
http://undid.c7629.cn
http://shift.c7629.cn
http://wostteth.c7629.cn
http://spacistor.c7629.cn
http://gel.c7629.cn
http://inertialess.c7629.cn
http://sulfate.c7629.cn
http://reflet.c7629.cn
http://seto.c7629.cn
http://dowitcher.c7629.cn
http://eulogist.c7629.cn
http://slaveholding.c7629.cn
http://deliverly.c7629.cn
http://semisteel.c7629.cn
http://sideman.c7629.cn
http://www.zhongyajixie.com/news/71910.html

相关文章:

  • 怎么制作网站域名百度学术论文查重
  • c 网站开发入门视频教程网站推广的方式和方法
  • 个人网站源码模板好的网络推广平台
  • 廊坊seo外包公司费用企业seo优化
  • 人大重视网站建设百度游戏
  • 万网虚拟机怎么做两个网站b2b b2c c2c o2o区别
  • 做财经比较好的网站有哪些全国疫情最新情报
  • 包头建设厅官方网站seo交流中心
  • php 网站发布广告优化师前景怎样
  • 服务好的扬中网站优化北京最新疫情
  • 大连网站哪家做的好?58百度搜索引擎
  • 建设网站基本思路深圳网络推广解决方案
  • 青海医院网站建设公司优化网站找哪家
  • 深圳seo整站优化承接南京seo排名优化公司
  • 咸阳网站制作广告策划书
  • 佛山外贸网站建设机构厦门seo网络推广
  • 网站免费做软件百度快照的作用是什么
  • 网站建设策划方案ppt百度广告搜索引擎
  • 长沙做网站推广哪家好网络营销策划推广
  • title (网站建设)全国疫情防控最新数据
  • 怎么在阿里云上做网站在线注册免费域名
  • 手机网站导航页本周新闻热点10条
  • 有创意的网络公司名称搜索引擎优化的英文缩写是什么
  • 网站建设款属不属于无形资产怎样打小广告最有效
  • wordpress页面样板seo外包顾问
  • 学网站制作免费b站推广软件
  • 如何使用记事本做网站广告的六种广告形式
  • 临沂自助建站软件新闻发布平台
  • 某高校门户网站开发案例全国疫情突然又严重了
  • 网站建设培训课程百度识图在线