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

【算法】三道算法题两道难度中等一道困难

算法目录

  • 只出现一次的数字(中等难度)
    • java解答参考
  • 二叉树的层序遍历(难度中等)
    • java 解答参考
  • 给表达式添加运算符(比较困难)
    • java解答参考

大家好,我是小冷。
上一篇是算法题目
接下来继续看下算法题目吧,用Java解答,可能更能激发一下大脑思考。

只出现一次的数字(中等难度)

题目要求:

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。

示例 1:

输入:nums = [2,2,3,2]
输出:3

示例 2:

输入:nums = [0,1,0,1,0,1,99]
输出:99

提示:

1 <= nums.length <= 3 * 104
-231 <= nums[i] <= 231 - 1
nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次

根据题目要求和实例可分析有哪些步骤,需要几个for循环。

进阶:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

java解答参考

class Solution {public int singleNumber(int[] nums) {int ret = 0;for (int i = 0; i < 32; ++i) {int bitnums = 0;int bit = 1 << i;for (int num : nums) {if ((num & bit) != 0)bitnums++;}if (bitnums % 3 != 0)ret |= bit;}return ret;}
}

二叉树的层序遍历(难度中等)

题目要求:
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。

示例:
二叉树:[3,9,20,null,null,15,7],

3
/ \
9 20
/ \
15 7

返回其层序遍历结果:

[
[3],
[9,20],
[15,7]
]

java 解答参考

public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}
}
class Solution {public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> l = new ArrayList<>();Queue<TreeNode> q = new LinkedList<TreeNode>();if (root != null) {q.add(root);}while (!q.isEmpty()) {List<Integer> l2 = new ArrayList<>();int number = q.size();while (number > 0) {TreeNode t = q.poll();l2.add(t.val);if (t.left != null) {q.add(t.left);}if (t.right != null) {q.add(t.right);}number--;}l.add(l2);}return l;}
}

给表达式添加运算符(比较困难)

题目要求:
给定一个仅包含数字 0-9 的字符串 num 和一个目标值整数 target ,在 num 的数字之间添加 二元 运算符(不是一元)+、- 或 * ,返回所有能够得到目标值的表达式。

示例 1:

输入: num = “123”, target = 6
输出: [“1+2+3”, “123”]

示例 2:

输入:
num =
“232”, target = 8
输出: [“23+2", "2+32”]

示例 3:

输入:
num =
“105”, target = 5
输出: [“1*0+5”,“10-5”]

示例 4:

输入:
num =
“00”, target = 0
输出: [“0+0”, “0-0”, “0*0”]

示例 5:

输入:
num =
“3456237490”, target = 9191
输出: []

提示:

1 <= num.length <= 10
num 仅含数字
-231 <= target <= 231 - 1

java解答参考

class Solution {int n;String num;List<String> ans;int target;public List<String> addOperators(String num, int target) {this.n = num.length();this.num = num;this.target = target;this.ans = new ArrayList<String>();StringBuffer expr = new StringBuffer();dfs(expr, 0, 0, 0);return ans;}public void dfs(StringBuffer sba, long sum, long prepareMultiply, int index) {StringBuffer sb = new StringBuffer(sba);if (index == n) {if (sum == target) {ans.add(sb.toString());}return;}int sign = sb.length();if (index > 0) {sb.append("0");}long val = 0;for (int i = index; i < n && (i == index || num.charAt(index) != '0'); i++) {val = val * 10 + (num.charAt(i) - '0');sb.append(num.charAt(i));if (index == 0) {dfs(sb, val, val, i + 1);continue;}sb.setCharAt(sign, '+');dfs(sb, sum + val, val, i + 1);sb.setCharAt(sign, '-');dfs(sb, sum - val, -val, i + 1);sb.setCharAt(sign, '*');dfs(sb, sum - prepareMultiply + prepareMultiply * val, prepareMultiply * val, i + 1);}}
}

好了,今天学习在这里,小冷一直在技术路上前行…

昨天,删去;今天,争取;明天,努力

需要资料的VX 搜索 小冷coding 关注或者点击下方名片扫码 获取

相关文章:

【算法】三道算法题两道难度中等一道困难

算法目录只出现一次的数字&#xff08;中等难度&#xff09;java解答参考二叉树的层序遍历&#xff08;难度中等&#xff09;java 解答参考给表达式添加运算符&#xff08;比较困难&#xff09;java解答参考大家好&#xff0c;我是小冷。 上一篇是算法题目 接下来继续看下算法题…...

正交实验与极差分析

正交试验极差分析流程如下图&#xff1a; 正交试验说明 正交试验是研究多因素试验的设计方法。对于多因素、多水平的实验要求&#xff0c;如果每个因素的每个水平都要进行试验&#xff0c;这样就会耗费大量的人力和时间&#xff0c;正交试验可以选择出具有代表性的少数试验进行…...

DEXTUpload .NET增强的上传速度和可靠性

DEXTUpload .NET增强的上传速度和可靠性 DEXTUpload.NET Pro托管在Windows操作系统上的Internet Information Server(IIS)上&#xff0c;服务器端组件基于HTTP协议&#xff0c;支持从web浏览器到web服务器的文件上载。它也可以在ASP.NET服务器应用程序平台开发的任何网站上使用…...

SkyWalking 将方法加入追踪链路(@Trace)

SkyWalking8 自定义链路追踪@Trace 自定义链路,需要依赖skywalking官方提供的apm-toolkit-trace包.在pom.xml的dependencies中添加如下依赖: <dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-trace</artifactId>&…...

MySQL Administrator定时备份MySQL数据库

1、下载并安装软件mysql-gui-tools-5.0-r17-win32.exe 2、将汉化包zh_CN文件夹拷贝到软件安装目录 3、菜单中打开MySql Adminstrator&#xff0c;见下图&#xff0c;初次打开无服务实例。 点击已存储连接右侧按钮①&#xff0c;打开下图对话框。点击“新连接”按钮&#xff…...

Kubernetes入门教程 --- 使用二进制安装

Kubernetes入门教程 --- 使用二进制安装1. Introduction1.1 架构图1.2 关键字介绍1.3 简述2. 使用Kubeadm Install2.1 申请三个虚拟环境2.2 准备安装环境2.3 配置yum源2.4 安装Docker2.4.1 配置docker加速器并修改成k8s驱动2.5 时间同步2.6 安装组件3. 基础知识3.1 Pod3.2 控制…...

深度学习模型压缩方法概述

一,模型压缩技术概述 1.1,模型压缩问题定义 因为嵌入式设备的算力和内存有限,因此深度学习模型需要经过模型压缩后,方才能部署到嵌入式设备上。 模型压缩问题的定义可以从 3 角度出发: 模型压缩的收益: 计算: 减少浮点运算量(FLOPs),降低延迟(Latency)存储: 减少内…...

《NFL橄榄球》:坦帕湾海盗·橄榄1号位

坦帕湾海盗&#xff08;英语&#xff1a;Tampa Bay Buccaneers&#xff09;是一支位于佛罗里达州的坦帕湾职业美式橄榄球球队。他们是全国橄榄球联盟的南区其中一支球队。在1976年&#xff0c;与西雅图海鹰成为NFL的球队。球队在最初的两个球季连败26场&#xff0c;在二十世纪七…...

Xmake v2.7.7 发布,支持 Haiku 平台,改进 API 检测和 C++ Modules 支持

layout: post.cn title: “Xmake v2.7.7 发布&#xff0c;支持 Haiku 平台&#xff0c;改进 API 检测和 C Modules 支持” tags: xmake lua C/C package modules haiku cmodules categories: xmake Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量&#xff0c;没…...

苹果ios签名证书的生成方法

在使用hbuilderx打包uniapp或html5应用的时候&#xff0c;假如是打包ios应用&#xff0c;是需要ios签名证书&#xff0c;和证书profile文件的&#xff0c;这个证书要求是p12格式的证书&#xff0c;profile文件又叫描述文件。 这两个文件&#xff0c;需要在苹果开发者中心生成&…...

c++开发配置常用网站记录

1.ubuntu 镜像源&#xff1a; (1) 清华源&#xff1a;https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/ (2) 阿里源&#xff1a;https://developer.aliyun.com/mirror/ubuntu?spma2c6h.13651102.0.0.3e221b11VuM27s 包含了ubuntu各个版本的source源 2.ubuntu iso镜像下载…...

DC-1 靶场学习

以前写过了&#xff0c;有一些忘了&#xff0c;快速的重温一遍。 DC一共九个靶场&#xff0c;目标一天一个。 文章目录环境配置&#xff1a;信息搜集&#xff1a;漏洞复现&#xff1a;FLAG获取环境配置&#xff1a; 最简单的办法莫过于将kali和DC-1同属为一个nat的网络下。 信…...

oracle 不使用索引深入解析

首先&#xff0c;我们要确定数据库运行在何种优化模式下&#xff0c;相应的参数是&#xff1a;optimizer_mode。缺省的设置应是"choose"&#xff0c;即如果对已分析的表查询的话选择CBO&#xff0c;否则选择RBO。如果该参数设为“rule”&#xff0c;则不论表是否分析…...

什么是自助式BI工具,有没有推荐

为什么需要自助式BI&#xff1f; 传统的BI采用的是“业务提报表需求&#xff0c;IT进行开发”的模式。决策管理者和业务人员提出用报表等来展示经营管理数据的需求&#xff1b;接着IT响应需求&#xff0c;进行需求沟通、数据处理加工、报表开发等主体工作&#xff1b;最后决策管…...

如何高效管理自己的时间,可以从这几个方向着手

如果你是上班族&#xff0c;天选打工人&#xff0c;你的绝大多数时间都属于老板&#xff0c;能够自己支配的时间其实并不多&#xff0c;所以你可能察觉不到时间管理的重要性。但如果你是自由职业者或者创业者&#xff0c;想要做出点成绩&#xff0c;那你就需要做好时间管理&…...

【PAT甲级题解记录】1014 Waiting in Line (30 分)

【PAT甲级题解记录】1014 Waiting in Line (30 分) 前言 Problem&#xff1a;1014 Waiting in Line (30 分) Tags&#xff1a;模拟 双端队列 Difficulty&#xff1a;剧情模式 想流点汗 想流点血 死而无憾 Address&#xff1a;1014 Waiting in Line (30 分) 问题描述 银行有N个…...

web接入大华摄像头实时视频

目录 一、FFmpeg下载及配置​​​​ 二、nginx下载及配置 三、摄像rtsp取流 四、ffmpeg推流 五、html前端工作 一、FFmpeg下载及配置​​​​ 地址&#xff1a;Download FFmpeg 下载并解压FFmpeg文件夹&#xff0c;配置环境变量&#xff1a;在“Path”变量原有变量值内容…...

Git代码冲突-不同分支之间的代码冲突

1、解决思路在团队开发中&#xff0c;提交代码到Git仓库时经常会遇到代码冲突的问题。- 原因&#xff1a;多人对相同的文件进行了编辑&#xff0c;造成代码存在差异化- 解决方案&#xff1a;1. 使用工具或git命令对比不同分支代码的差异化2. 把不同分支中有效代码进行保留&…...

KUKA KR C4机器人与S7-1200PLC进行PROFINET通信的具体方法和步骤

KUKA KR C4机器人与S7-1200PLC进行PROFINET通信的具体方法和步骤 首先,从KUKA机器人控制柜中将KOP备选软件包拷贝出来,然后在“WorkVisual Development Environment”安装KUKA备选软件包(版本非常重要,尽量从控制柜中拷贝), 也可以从以下链接中获取: KUKA机器人PROFINET…...

从0到1一步一步玩转openEuler--24 openEuler管理进程-调度启动进程

文章目录24 openEuler管理进程-调度启动进程24.1 定时运行一批程序&#xff08;at&#xff09;24.1.1 at命令24.1.2 设置时间24.1.3 执行权限24.2 周期性运行一批程序&#xff08;cron&#xff09;24.2.1 运行机制24.2.2 crontab命令24.2.3 crontab文件24.2.4 编辑配置文件操作…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...