当前位置: 首页 > 编程日记 > 正文

java基础编程题(2)

1、给定一个二叉树,找出其最大深度。

注:二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public int maxDepth(TreeNode root) {return root == null ? 0 : Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;}
}

 

2、给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。

解题思路:

(1)首先求出高度是 1 的矩形面积,也就是它自身的数,如图中橙色的 4,面积就是 4。

(2)然后向上扩展一行,高度增加一,选出当前列最小的数字,作为矩阵的宽,求出面积,对应上图的矩形框。

(3)然后继续向上扩展,重复步骤 2。

以此类推

class Solution {public int maximalRectangle(char[][] matrix) {if (matrix.length == 0) {return 0;}//保存以当前数字结尾的连续 1 的个数int[][] width = new int[matrix.length][matrix[0].length];int maxArea = 0;//遍历每一行for (int row = 0; row < matrix.length; row++) {for (int col = 0; col < matrix[0].length; col++) {//更新 widthif (matrix[row][col] == '1') {if (col == 0) {width[row][col] = 1;} else {width[row][col] = width[row][col - 1] + 1;}} else {width[row][col] = 0;}//记录所有行中最小的数int minWidth = width[row][col];//向上扩展行for (int up_row = row; up_row >= 0; up_row--) {int height = row - up_row + 1;//找最小的数作为矩阵的宽minWidth = Math.min(minWidth, width[up_row][col]);//更新面积maxArea = Math.max(maxArea, height * minWidth);}}}return maxArea;}
}

3、找出数组中重复的数字

在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2, 3, 1, 0, 2, 5, 3},那么对应的输出是重复的数字2或者3。

思路:从哈希表的思路拓展,重排数组:把扫描的每个数字(如数字m)放到其对应下标(m下标)的位置上,若同一位置有重复,则说明该数字重复。

public static void main(String[] args) {
//输入数组的长度;Scanner sc = new Scanner(System.in);System.out.print("请输入取值范围(0~n):" + "\t");int n = sc.nextInt();//题目要求的数组ArrayList<Integer> arr = new ArrayList<>();
//去重数组HashSet<Integer> mset = new HashSet<>();Random ran = new Random();
//随机n次,产生n个数,存入数组中for (int i = 0; i < n; i++) {
//产生一个0~n-1之间的随机数,存入数组int j = ran.nextInt(n);arr.add(j);mset.add(j);}System.out.println("------------------------[ 原始数据 ]------------------------");System.out.println("随机数组值为:" + arr);System.out.println("去重参考值为:" + mset);
//------------------------------------------前期准备工作-------------------------------------------------------//这时候,得到了一个符合题目要求的数组;和一个没有重复的set集合if (arr.size() <= 0 || arr == null) {System.out.println("无效数组!");}if (arr.size() == mset.size()) {System.out.println("数组中无重复数字!");} else {
//有重复数字,重复的数组为:arr数组减去无重复数组msetfor (Integer integer : mset) {
//得到该数字再arr数组中第一次的索引,删除int i = arr.indexOf(integer);arr.remove(i);}//再去重HashSet<Integer> list = new HashSet<>();for (Integer i : arr) {list.add(i);}
//重复数字为:System.out.println("重复的值为 : " + list);}}

转载于:https://www.cnblogs.com/strong-FE/p/11470065.html

相关文章:

python元组转字典_python中怎么将元组、字典转化为列表

python中将元组、字典转化为列表的方法&#xff1a; python中可以使用list()方法将元组或字典转化为列表&#xff1a; list()方法语法&#xff1a;list( tup ) 参数 tup -- 要转换为列表的元组。 返回值 返回列表。 示例&#xff1a; 将元组转换为列表&#xff1a;#!/usr/bin/p…

搭建Git服务器教程转载

1. 在Windows下使用sshmsysgit客户端搭建Git服务器 http://www.codeproject.com/Articles/296398/Step-by-Step-Setup-Git-Server-on-Windows-with-CopS 2. 在Windows下使用Apachemsysgit客户端搭建Git服务器 http://www.devbean.info/2011/10/apache-git-server-on-windows/ 3…

存储过程处理错误数据

create or replace procedure ERR_REDUCEDATA is --sx --定义变量 v_realindiobjid VARCHAR2(100); v_indiobjid VARCHAR2(32); v_residuemoney number ; v_reducemoney number ; v_approbjid VARCHAR2(32); -- v_indiecoid VARCHAR2(32); --v_indiecocode VARCHAR2(32); v_Ap…

[置顶] 面向业务开发应用

自从计算机出现后&#xff0c;快速便捷的从太平洋一样的文海中找到水滴大小的资料真正成为了可能&#xff0c;而能够帮助人们实现这一愿望的程序员就像中世纪的航海家一样用神秘的代码程序指引着计算机一步一步实现的需求。而他们所用的被称之为“程序”的序列组合&#xff0c;…

vector方法

借鉴网上资料&#xff0c;整理了vector使用的一些方法&#xff0c;记录下来&#xff0c;方便以后查阅 vector初始化 vector<int>a(10) //只定义长度 vector<int>a(10,1)//长度为10&#xff0c;初始值为1 vector<int>a(b); //用b向量来创建a向量&#xff0c;…

MyEclipse Enterprise Workbench 9.0 破解及注册机 注册码

MyEclipse 9.0的激活机制终于破解了&#xff0c;破解步骤比老版本要复杂一些&#xff0c;但是是绝对可以破解的&#xff0c;这个破解对主程序无任何修改&#xff0c;只替换公钥&#xff0c;如果有牛人会快速从公钥反推私钥&#xff0c;那就什么都不用改了&#xff0c;步骤如下&…

python字典一键多值_python字典中如何一键多值的写入?

python字典中如何一键多值的写入&#xff1f; python字典中一键多值写入的方法&#xff1a; 1、循环写入字典key、value、删除指定的键值对&#xff1a; 原文本‘jp_url.txt’每行元素以逗号分隔:host_key,product_id,product_name,cont_start,cont_end ah2.zhangyue.com,10000…

向实现细节低头

本来想搞明白所有的东西&#xff0c;然后自己集成&#xff0c;避免引入额外的组件&#xff0c;避免复杂的维护成本。 现在想想&#xff0c;相比于投入的巨大精力&#xff0c;其收益过小&#xff0c;还是要有所取舍。转载于:https://www.cnblogs.com/youge-OneSQL/p/9268924.htm…

Session丢值的问题

本来本地调试好好的,一上服务器session就非常容易丢失,表现在,用window.href跳转丢session,用httpmoulde丢session,在frame里面ifarme里面丢session,折磨了一天,才知道是因为应用程序池的原因,一个池里面放了太多网站,导致session丢失(系统还没有上线,光放那也不行), 还有应用程…

换发型app任性扣费?苹果app订阅任性扣费?怎么办?刚成功

2019年9月18日17:09:27 什么黑猫举报没用 先关闭订阅 账户中心自助申请试试&#xff0c;不通过再进行下面这步 https://getsupport.apple.com/?callerhome&PRKEYS 技术支持网址 然后就等电话吧&#xff0c;一般10秒钟就打过来了。 告诉原因&#xff0c;提供收费的订单号&a…

用eclipse阅读编辑android和kernel,uboot的源代码

from: http://hi.baidu.com/designhouse/blog/item/ff3f0df4a33571f37709d736.html 1. 用eclipse阅读编辑android源代码的配置方法有官方文档&#xff0c;非常详细&#xff0c;http://source.android.com/source/using-eclipse.html 阅读android代码用的是Eclipse IDE for Jav…

当一个序列满足对于任意的前 项和都满足不小于_时间序列分析第01讲--平稳序列(基本概念,线性平稳序列)...

第一章 平稳序列1.1平稳序列基本概念无论是从原序列中把趋势项去掉得到的随机波动项&#xff0c;还是用随机差分后得到残差序列&#xff0c;都会存在一种现象&#xff1a;随机项会沿着水平值波动&#xff0c;并且前后之间具有相关性&#xff0c;与独立序列不同。一、定义定义1.…

京医通如何删除临时卡,解绑

1、解绑的话&#xff0c;如果你是正式卡或者社保卡&#xff0c;可以在账户里面&#xff0c;点击卡进去详情页&#xff0c;里面会有一个解绑 2、重点就是临时卡了&#xff0c;挂号的时候很恶心。 目前唯一的解决办法就是&#xff0c;注销账户。 1&#xff09;、解绑所有正式卡 2…

T-SQL查询——详解公用表达式(CTE)

对于Select查询语句来说&#xff0c;通常情况下&#xff0c;为了是T-SQL代码更加简洁和刻度&#xff0c;在一个查询中应用另外的结果集都是通过视图而不是查询进行分解的&#xff0c;但是&#xff0c;视图作为系统对象存储在数据库中&#xff0c;那对于结果集仅仅需要在存储过程…

如何实现显示超过10个字符就显示省略号?

// 要展示的文本(nickName) this.nickName 风一样的女子凤一样的我&#xff0c;有想认识嘛~~ if (this.nickName.length > 10) {this.nickName this.nickName.substring(0, 10) "...";console.log(00, this.nickName)}备注&#xff1a;substring() 方法用于提取…

课程实验代码及动手动脑测试

枚举类型测试代码&#xff1a; public class EnumTest {public static void main(String[] args) {Size s Size.SMALL;Size t Size.LARGE;// s和t引用同一个对象&#xff1f;System.out.println(s t); //// 是原始数据类型吗&#xff1f;System.out.println(s.getClass().is…

python利用自动识别写模块_Python 利用pytesser模块识别图像文字

使用的是python的pytesser模块&#xff0c;原先想做的是图片中文识别&#xff0c;搞了一段时间了&#xff0c;在中文的识别上还是有很多问题&#xff0c;这里做记录分享。 可将图片中的文字转换成文本&#xff08;主要是英文&#xff09;。 1.pytesser安装 使用设备&#xff1a…

C02-程序设计基础提高班(C++)第9周上机任务-类和对象

第9周&#xff1a;阅读教材第8章&#xff08;p231-262&#xff09;&#xff0c;主要内容是类和对象&#xff0c;学会定义类和对象解决问题&#xff0c;完成第9周上机任务&#xff1b;(回到C02-程序设计基础提高班&#xff08;C&#xff09;学习安排)实践任务&#xff1a;【任务…

在不影响配置下,清除netscreen密码

在缺省情况下&#xff0c;设备恢复特征被启用。可通过输入 unset admin device-reset 命令禁用它。同样&#xff0c;如果NetScreen 设备处于 FIPS 模式&#xff0c;恢复特征被自动禁用。1. 在登录提示下&#xff0c;键入设备的序列号。2. 在密码提示下&#xff0c;再次键入序列…

如何删除一个CSDN上自己上传的资源

如何删除一个CSDN上自己上传的资源 第一步&#xff0c;找到你想删除的资源&#xff0c;其URL举例为&#xff1a;http://download.csdn.net/detail/ssergsw/9733040则删除的get请求为&#xff1a;http://download.csdn.net/index.php/user_console/del_my_source/9733040删除成功…

关于计算机中二进制原码,反码,补码的简要解释

原码&#xff0c;补码&#xff0c;反码的概念 正数原码&#xff1a;正数的原码为取绝对值的数转二进制&#xff0c;5的原码为 00000000 00000000 00000000 00000101 负数原码&#xff1a;负数的原码为取绝对值的数转二进制&#xff0c;然后符号位&#xff08;最高位&a…

python是一种面向对象的高级语言_爬了世纪佳缘后发现了一个秘密,世纪佳缘找对象靠谱吗?...

今天在知乎上看到一个关于【世纪佳缘找对象靠谱吗&#xff1f;】的讨论&#xff0c;其中关注的人有 1903&#xff0c;被浏览了 1940753 次&#xff0c;355 个回答中大多数都是不靠谱。用 Python 爬取世纪佳缘的数据是否能证明它的不靠谱&#xff1f;数据抓取 在 PC 端打开世纪佳…

使用邮件规则,将收到的邮件进行分类

随着工作的进行&#xff0c;我们经常会发现邮箱里一大堆各种各样的邮件&#xff0c;而要从中找到指定类型的邮件&#xff0c;只能每次都进行一次搜索。但是&#xff0c;经常这样搜索&#xff0c;先不说效率如何&#xff0c;它肯定会对我们的工作进行一些影响。 在这里&#xff…

多个CALayer的联动

在如何通过手势捕获CALayer基础上做了个示例&#xff0c;两个CALayer的联动&#xff0c;当拖动左侧的Layer的时候&#xff0c;右侧的Layer随动。因为右侧的动画没有关闭&#xff0c;有延迟&#xff0c;产生随动的效果。如果不想延迟&#xff0c;可参考拖动动画的问题及解决。 在…

在不允许新建对象的条件下,将list中指定条件的值去除

package com.liujianwang.learning;import java.util.LinkedList; import java.util.List;public class ListTest {public static void main(String[] args) {/** 在不允许新建对象的条件下&#xff0c;将list中指定条件的值去除。* 例如&#xff1a;移除list中值大于6的元素。…

openlayers map获取全部feature_tf2.0基础-tf.data与tf.feature_column

7.2.1 tf.data使用 tf.data API 可以轻松处理大量数据、不同的数据格式以及复杂的转换。tf.data API 在 TensorFlow 中引入了两个新的抽象类&#xff1a;tf.data.Dataset 表示一系列元素&#xff0c;其中每个元素包含一个或多个 Tensor 对象。&#xff1a;创建来源&#xff08;…

项目活动定义 概述

项目活动定义概述 项目活动定义是确认和描述项目的特定活动,它把项目的组成要素加以细分为可管理的更小部分&#xff0c;以便更好地管理和控制。 确定计划活动需要确定和记载计划完成的工作。活动定义过程识别处于工作分解结构&#xff08;WBS&#xff09;最下层&#xff0c;叫…

如何判断CPU、内存、磁盘的性能瓶颈?

1.如何判断CPU、内存、磁盘的瓶颈&#xff1f; CPU瓶颈 1) 查看CPU利用率。建议CPU指标如下 a) User Time&#xff1a;65%&#xff5e;70% b) System Time&#xff1a;30%&#xff5e;35% c) Idle&#xff1a;0%&#xff5e;5% 如果us,sy高于这个指标可以判断CPU有瓶颈 使用top…

一个苹果手机移动电源也能让他拽得跟二五八万似的

一个苹果手机移动电源也能让他拽得跟二五八万似的~~低调一定是美德&#xff0c;尤其是在见过各种JP人类之后&#xff0c;我真心在心里呐喊&#xff0c;你丫稍微低调一点会死啊&#xff01;&#xff01;&#xff01;是的&#xff0c;这个世界上不可能不存在拽得调子高的人&#…