笔试算法总结
文章目录
- 题目1
- 题目2
- 题目3
- 题目4
题目1

使用 StringBuilder 模拟栈的行为,通过判断相邻2个字符是否相同,如果相同就进行删除
public class Main {public static String fun(String s) {if (s == null || s.length() <= 1) return s;StringBuilder builder = new StringBuilder(); // 使用StringBuilder模拟栈for (char c : s.toCharArray()) {if (builder.length() > 0 && builder.charAt(builder.length() - 1) == c) {builder.deleteCharAt(builder.length() - 1);} else {builder.append(c);}}return builder.toString();}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String s = scanner.nextLine();System.out.println(fun(s));}
}
题目2

public class Main {public static int climbStairs(int n) {if (n <= 2) {return n;}int[] dp = new int[n + 1]; // 动态规划数组dp[1] = 1;dp[2] = 2;for (int i = 3; i <= n; i++) {dp[i] = dp[i - 1] + dp[i - 2]; // 状态转移方程}return dp[n];}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();System.out.println(climbStairs(n));}
}
题目3


public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int N = scanner.nextInt();int n = N;ArrayList<Integer> list = new ArrayList<>(N);while (n > 0) {list.add(scanner.nextInt());n -= 1;}ArrayList<Integer> list1 = new ArrayList<>(N);for (int i = 0; i < N; i++) {list1.add(0);}int res = 0;// 每次从每个口袋中取列表中最小值个糖果(0不管)while (!list1.equals(list)) {int min = Integer.MAX_VALUE;for (Integer i : list) {if (i == 0) continue;if (i < min) min = i;}for (int i = 0; i < list.size(); i++) {if (list.get(i) == 0) continue;list.set(i, list.get(i) - min);}res+=1;}System.out.println(res);}
}
题目4

输入示例:
5
1 -2 3 -4 5
输出示例:
15
思路很简单,但是当时做题提交的时候,通过率总是18%。不知道为啥,后面我改成了Long类型,然后就通过了全部用例。(易错1:第一次提交没考虑0的情况)
// 这个是笔试通过的代码 当然优化之处很多
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int N = scanner.nextInt();int n = N;ArrayList<Long> list = new ArrayList<>(N);while (n > 0) {list.add(scanner.nextLong());n -= 1;}if (list.size() == 1) {System.out.println(list.get(0));return;}int cnt = 0;// 统计负数个数(0也算入)int zero = 0;for (Long i : list) {if (i == 0) zero = 1;if (i <= 0) {cnt += 1;}}Long res = 0L;Long min = Long.MAX_VALUE;for (Long i : list) {res += Math.abs(i);if (min > Math.abs(i)) min = Math.abs(i);}if (zero != 0) {System.out.println(res);return;}if ((cnt & 1) == 1) {// 奇数个负数res = res - min - min;}System.out.println(res);}
}
相关文章:
笔试算法总结
文章目录 题目1题目2题目3题目4 题目1 使用 StringBuilder 模拟栈的行为,通过判断相邻2个字符是否相同,如果相同就进行删除 public class Main {public static String fun(String s) {if (s null || s.length() < 1) return s;StringBuilder builde…...
mybatisPlus对于pgSQL中UUID和UUID[]类型的交互
在PGSQL中,有的类型是UUID和UUID[]这种类型,在mybatis和这些类型交互的时候需要手动设置类型处理器才可以,这里记录一下类型处理器的设置 /*** UUID类型处理器*/ public class UUIDTypeHandler extends BaseTypeHandler<UUID> {/*** 获…...
vue3 高德地图标注(飞线,呼吸点)效果
装下这两个 npm 忘了具体命令了,百度一下就行 “loca”: “^1.0.1”, “amap/amap-jsapi-loader”: “^1.0.1”, <template><div id"map" style"width: 100%;height: 100%;"></div> </template><script setup> …...
程序员成长秘籍:是迈向管理巅峰,还是深耕技术架构?
专业在线打字练习平台-巧手打字通,只输出有价值的知识。 一 管理和架构 做技术的同学一般有两条职业发展路径,横向的管理路线和纵向的技术路线。管理路线对应的是管理岗,讲究的是排兵布阵,通过各种资源的优化配置发挥价值。技术路…...
xargs的参数及常用命令
1. xargs 命令简介 xargs 是一个非常有用的工具,它用于从标准输入(stdin)构建和执行命令行。xargs 可以将标准输入中以空格或换行符分隔的数据,转化为命令的参数传递给其他命令。 使用场景: 当某些命令不支持使用管…...
FLASK 数据库建立以及部署和表的创建
首先安装flask-sqlalchemy db SQLAlchemy(app) 一 Mmeber、User模型类的创建 # coding: utf-8 from app import db, appclass Member(db.Model):__tablename__ memberid db.Column(db.Integer, primary_keyTrue)membername db.Column(db.String(100), uniqueTrue, index…...
微信小程序的面试题
简述下 wx.navigateTo(), wx.redirectTo(), wx.switchTab(), wx.navigateBack(), wx.reLaunch() 区别 ? wx.navigateTo() : 保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面 wx.redirectTo() : 关闭当前页面,跳转到应用内的…...
udp c语言实现组播的例子
一、组播与广播的区别 1、组播地址和广播地址是不同的概念 组播地址:用于将数据包发送到一组特定的接收者,只有加入该组播地址的设备才能接收数据。它提高了网络效率,因为发送者只需发送一份数据。 广播地址:用于将数据包发送到…...
ffmpeg面向对象——AVInputFormat与URLProtocol啥关系
《ffmpeg面向对象-rtsp拉流相关对象》和《ffmpeg面向对象——拉流协议匹配机制探索》探索过了输入格式匹配和底层协议匹配,且ffmpeg拉流是先是匹配输入格式——抽象为AVInputFormat类,然后再匹配url协议类——抽象为URLProtocol类。 它们是啥关系&#…...
【高阶数据结构】二叉树进阶探秘:AVL树的平衡机制与实现详解
高阶数据结构相关知识点可以通过点击以下链接进行学习一起加油!二叉搜索树 大家好,这里是店小二!今天我们将深入探讨高阶数据结构中的AVL树。AVL树是一种自平衡的二叉搜索树,可以看作是对传统二叉搜索树的优化版本。如果你对数据结…...
中级软考软件设计师真题+模拟题+课件讲解+机考讲解模拟+笔记分享
软考真题分享 下载链接⬇️⬇️: 下载链接...
MySQL—视图
前言: 视图是一个虚拟的表,是基于一个或多个基本表或其他视图的查询结果集。视图本身不占据物理储存空间,仅仅只是一个查询的逻辑表示,物理上依赖于数据表的数据。 视图具有简单,安全,逻辑数据独立&#…...
鸿蒙OS启动流程
启动流程(基于openharmony4.1) 系统上电加载内核后,按照以下流程完成系统各个服务和应用的启动: 内核加载init进程,一般在bootloader启动内核时通过设置内核的cmdline来指定init的位置。init进程启动后,会挂载tmpfs,…...
服务器数据恢复—EMC存储RAID5磁盘阵列数据恢复案例
服务器数据恢复环境: 一台EMC某型号存储设备,该存储中有一组由12块(包括2块热备盘)STAT硬盘组建的raid5阵列。 服务器故障: 该存储在运行过程中突然崩溃,raid瘫痪。数据恢复工程师到达现场对故障存储设备进…...
使用 `netcat`(nc)工具进行TCP数据发送和接收
Netcat(通常缩写为nc)是一个功能强大的网络工具,常被称为“瑞士军刀”的网络工具。它用于在网络上进行各种操作,比如读写网络连接、调试和分析网络服务等。以下是关于Netcat的一些详细介绍: ### 主要功能 1. **TCP/U…...
Linux虚拟化技术嬗变综述
在信息技术飞速发展的今天,虚拟化技术已经成为数据中心、云计算和企业IT基础设施中不可或缺的一部分。Linux操作系统作为开源和灵活的代表,在虚拟化技术的发展中扮演了重要角色。本文将综述Linux虚拟化技术的演变,探讨其优势、应用场景&#…...
.NET 通过C#设置Excel工作表的页面设置
Excel文件数据准备就绪并需要以报告形式呈现时,调整Excel文件的页面设置变得尤为重要,不仅关乎文档的专业外观,还直接影响到打印或电子分享时的可读性和实用性。通过C#来自动化这一过程,不仅可以节省大量手动配置的时间࿰…...
Excel日期导入数据库变为数字怎么办
在Excel导入到数据库的过程中,经常会碰到Excel里面的日期数据,导进去过后变成了数字。 如下图: 使用navicate等数据库编辑器导入数据库后: 原因分析:这是因为日期和时间在excel中都是以数字形式存储的,这个…...
SSL---SSL certificate problem
0 Preface/Foreword 0.1 SSL certificate problem 开发过程中,gitlab-runner连接gitlab时候出现SSL 证书问题。 场景:公司的gitlab runner服务器引入了SSL证书,每年都会主动更新一次。当前的gitlab-runner运行在PC机器上,但是g…...
linux tar 打包文件去掉文件所在路径
一、准备目录 /root/tmp/images /root/tmp/images2 执行命令打包目录/root/tmp/images 到 /root/tmp/images.tar.gz 再解压到/root/tmp/images2 cd /root/tmp/images && tar -cvzf images.tar.gz * && mv images.tar.gz /root/tmp/ tar -C /root/tmp/image…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...
实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...
