笔试训练2
牛客.单词搜索

刚开始我就想是搜索,但是不清楚bfs还是dfs更好,我尝试了bfs但是队列存东西,没有我想象的那么好写,所以我决定试试dfs
import java.util.*;public class Solution {static int m = 0;static int n = 0;static int []dx = {1, -1, 0, 0};static int []dy = {0, 0, 1, -1};static boolean [][]vis;static char[]word;/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param board string字符串一维数组* @param word string字符串* @return bool布尔型*/public static boolean exist (String[] board, String _word) {m = board.length;n = board[0].length();word = _word.toCharArray();char[][]a = new char[m][n];vis = new boolean[m][n];for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (board[i].charAt(j) == word[0]) {vis[i][j] = true; //标记if (dfs(board, i, j, 0) == true) {return true;};vis[i][j]=false; //回溯}}}return false;}private static boolean dfs(String[] board, int i, int j, int pos) {if (pos == word.length - 1) {return true;}for (int ii = 0; ii < 4; ii++) {int x = i + dx[ii];int y = j + dy[ii]; //注意这里是pos+1传递的是第几个下标if (x >= 0 && x < m && y >= 0 && y < n && board[x].charAt(y) == word[pos + 1] &&vis[x][y] == false) {vis[x][y] = true; //标记if ( dfs(board, x, y, pos + 1) == true) {return true;};vis[x][y] = false; //回溯}}return false;} }
牛客.杨辉三角

还想起来我第一次处理这个的时候,怎么想也不知道怎么写,那时候我是大一下学期刚学数据结构,然后到了今天,虽然我不是特别厉害,但是还是有所进步的,这个问题的想法,由于它是由上一行的这个和上一行的左边这个加一起,我的想法瞬间就想起来了dp,于是使用了dp处理这个问题
import java.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别int a = scanner.nextInt();int[][]b = new int[a + 1][a + 1];for (int i = 0; i <= a; i++)b[i][0] = 1;for (int i = 1; i <= a; i++) {for (int j = 1; j <= i; j++) {b[i][j] = b[i - 1][j - 1] + b[i - 1][j];}}for (int i = 0; i < a; i++) {for (int j = 0; j <= i; j++) {if (b[i][j] != 0) {StringBuffer ret = new StringBuffer();int len = Integer.toString(b[i][j]).length();for (int k = 0; k < 5 - len; k++)ret.append(" ");System.out.print(ret.toString() + b[i][j]);}}if (i + 1 != a)System.out.println();}} }
牛客.游游的you

输入输出是因为我想熟悉一下模版,这道题,不用也可以。就是看连续的o就-1,先找对应的you,再去找oo
import java.util.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.BufferedWriter;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));public static void main(String[] args)throws IOException {Read scanner = new Read();int a1 = scanner.nextInt();int[][] a = new int[a1][3];int[] dp = new int[a1];int[] count = new int[a1];for (int i = 0; i < a1; i++) {int min = Integer.MAX_VALUE;for (int j = 0; j < 3; j++) {a[i][j] = scanner.nextInt();min = Math.min(a[i][j], min);}count[i] = a[i][1];dp[i] = min;}int sum = 0;for (int i = 0; i < a1; i++) {if (count[i] - dp[i] - 1 <= 0)sum = dp[i] * 2;else sum = dp[i] * 2 + (count[i] - dp[i] - 1) ;System.out.println(sum);}// 注意 hasNext 和 hasNextLine 的区别}
}
class Read {StringTokenizer st = new StringTokenizer("");BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));String next()throws IOException {while (!st.hasMoreTokens()) {st = new StringTokenizer(bf.readLine());}return st.nextToken();}String nextLine()throws IOException {return bf.readLine();}int nextInt() throws IOException {return Integer.parseInt(next());}long nextLong()throws IOException {return Long.parseLong(next());}double nextDouble()throws IOException {return Double.parseDouble(next());}
}
牛客.腐烂的苹果

常规的bfs,使用vis来标记,然后就直接宽度搜索,用一个队列,放循环里面,然后,分两块往下面遍历(因为这是1s,所以把它放到sz出去,因为这个sz的作用是用来,统计一个烂苹果能感染多少组好苹果,然后把这些好苹果放到里面)
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param grid int整型ArrayList<ArrayList<>>* @return int整型*/static int []dx = {0, 0, 1, -1};static int []dy = {1, -1, 0, 0};public static int rotApple (ArrayList<ArrayList<Integer>> grid) {int m = grid.size();int n = grid.get(0).size();int ret = 0;boolean[][]vis = new boolean[m][n];Queue<int[]>q = new LinkedList<>();for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (grid.get(i).get(j) == 2) {q.add(new int[] {i, j});vis[i][j] = true;}}}while (!q.isEmpty()) {int sz = q.size();while (sz > 0) {int []k = q.poll();sz--;for (int i = 0; i < 4; i++) {int x = dx[i] + k[0];int y = dy[i] + k[1];if (x >= 0 && x < m && y >= 0 && y < n && grid.get(x).get(y) == 1 &&vis[x][y] == false) {q.add(new int[] {x, y});vis[x][y] = true;}}}ret++;}for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (grid.get(i).get(j) == 1 && vis[i][j] == false) {return -1;}}}return ret - 1;}// write code her
}相关文章:
笔试训练2
牛客.单词搜索 刚开始我就想是搜索,但是不清楚bfs还是dfs更好,我尝试了bfs但是队列存东西,没有我想象的那么好写,所以我决定试试dfs import java.util.*;public class Solution {static int m 0;static int n 0;static int […...
构建坚不可摧的Web安全防线:深入剖析二阶注入与全面防御策略
引言 在数字化时代,数据安全是企业和个人最为关注的问题之一。网络攻击手段层出不穷,其中SQL注入攻击尤为狡猾,它允许攻击者通过Web应用的漏洞对数据库进行非法操作。更隐蔽的是二阶注入攻击,它不仅威胁当前操作,还能…...
(4) qml动态元素
文章目录 概述注意 动画元素变化的策略Animation on 变化behavior on⽤standalone animation注意 缓冲曲线(Easing Curves)动画分组 概述 这⼀章介绍如何控制属性值的变化,通过动画的⽅式在⼀段时间内来改变属性值。这项技术是建⽴⼀个现代化…...
深度神经网络——什么是梯度下降?
如果对神经网络的训练有所了解,那么很可能已经听说过“梯度下降”这一术语。梯度下降是提升神经网络性能、降低其误差率的主要技术手段。然而,对于机器学习新手来说,梯度下降的概念可能稍显晦涩。本文旨在帮助您直观理解梯度下降的工作原理。…...
基本元器件 - 二极管
目录 二极管的主要参数 二极管的分类 整流二极管 快恢复二极管(FRD) 稳压(齐纳)二级管 瞬态电压抑制器(TVS) 开关二极管 肖特基二极管(SBD) 正偏与反偏 常用封装 伏安特性…...
【设计模式】单例模式(创建型)⭐⭐⭐
1.概念 1.1 什么是单例模式 单例模式属于创建型模式,一个单例类在任何情况下都只存在一个实例, 构造方法必须是私有的、由自己创建一个静态变量存储实例,对外提供一 个静态公有方法获取实例。 1.2 优点与缺点 优点:是内存中只有一个实例&…...
《深入浅出C语言:从基础到指针的全面指南》
1. 简介 C语言是一种通用的编程语言,广泛应用于系统编程、嵌入式系统和高性能应用程序。它由Dennis Ritchie在1972年开发,并且至今仍然非常流行。C语言以其高效、灵活和强大的功能著称,是许多现代编程语言的基础。 2. 基本语法 2.1 Hello, …...
Typescript高级: 深入实践Record类型
概述 Record 类型是TS中其众多强大特性之一它为我们提供了创建键值对映射的强大能力极大地增强了代码的灵活性与类型安全性 应用示例 1 )用于配置场景 在复杂的项目中,配置文件往往包含多个模块的不同设置使用 Record 可以确保配置的键名正确且值类型…...
重构与优化-对象间特性搬移重构(2)
在软件开发过程中,重构是改进代码结构和设计、不改变其外在行为的过程。对象之间的特性搬移(Moving Features Between Objects)是重构的一种重要类型,它涉及到将属性、方法或其他特性从一个对象转移到另一个对象,以优化代码结构、提高可维护性和遵循设计原则。以下是几种典…...
网络流量监控与DNS流量分析
目录 一、网络流量监控的基础知识 什么是网络流量监控? 网络流量监控的重要性 实用案例:如何通过网络流量监控优化带宽利用 二、DNS流量分析的核心要点 什么是DNS流量分析? DNS流量分析的优势 实用技巧:如何通过DNS流量分…...
【数据分析】打造完美数据分析环境:Python开发环境搭建全攻略
打造完美数据分析环境:Python开发环境搭建全攻略 在数据分析的世界中,搭建一个稳定且高效的Python开发环境是至关重要的。本文将介绍三种主要的环境搭建方式:使用pip、Anaconda和Miniconda。 1. 使用pip从清华镜像安装Python包 pip是Pytho…...
我的app开始养活我了
大家在日常使用各类 app 时应该会发现,进入 app 会有个开屏广告,在使用 app 中,时不时的也会有广告被我们刷到。 这时候如果我们看完了这个广告,或者点击了这个广告的话,app商家就会获得这个广告的佣金。 这个佣金就是…...
linux中最基础使用的命令
小白学习记录: 前情提要:Linux命令基础格式!查看 ls看目录的小技巧 进入指定目录 cd查看当前工作目录 pwd创建一个新的目录(文件夹) mkdir创建文件 touch查看文件内容 cat、more操作文件、文件夹- 复制 cp- 移动 mv- 删除【危险操作ÿ…...
【算法实战】每日一题:17.1 订单处理问题(差分思想,二分搜索)
题目 一个会议中心的场地预订系统。在接下来的 n 天里,会议中心有一定数量的会议室可供租用。共有 m 份预订请求,每份请求描述为 (d_i, a_i, b_i),表示需要从第 a_i 天到第 b_i 天使用会议室(包括第 a_i 天和第 b_i 天࿰…...
UML静态图-对象图
概述 静态图包含类图、对象图和包图的主要目的是在系统详细设计阶段,帮助系统设计人员以一种可视化的方式来理解系统的内部结构和代码结构,包括类的细节、类的属性和操作、类的依赖关系和调用关系、类的包和包的依赖关系。 对象图与类图之间的关系&…...
数据结构第三篇【链表的相关知识点一及在线OJ习题】
数据结构第三篇【链表的相关知识点一及在线OJ习题】 链表链表的实现链表OJ习题顺序表和链表的区别和联系 本文章主要讲解关于链表的相关知识,喜欢的可以三连喔 😀😃😄😄😊😊🙃&#…...
RabbitMQ-发布/订阅模式
RabbitMQ-默认读、写方式介绍 RabbitMQ-直连交换机(direct)使用方法 目录 1、发布/订阅模式介绍 2、交换机(exchange) 3、fanout交换机的使用方式 3.1 声明交换机 3.2 发送消息到交换机 3.2 扇形交换机发送消息代码 3.2 声明队列,用于接收消息 3.3 binding …...
客运提质增效新模式!苏州金龙客货邮融合公交闪耀2024道路运输展
5月31日,“2024北京国际商用车及零部件展览会”暨“2024北京国际道路客货运输车辆及零部件展览会”(简称为“2024道路运输车辆展”)在中国国际展览中心(顺义馆)落下帷幕。本届展会以“智能、绿色、安全,助力…...
【Python实战】使用postman测试flask api接口
cookie_demo.py # -*- coding: utf-8 -*- """ Time : 2024/5/28 17:14 Author : 娜年花开 File : cookie_demo.py Desc : 需求:用户需要先登陆,登陆之后,通过Cookie来判断是不是能够访问登录后的接口userinfo &quo…...
Docker大学生看了都会系列(二、Mac通过Homebrew安装Docker)
系列文章目录 第一章 Docker介绍 第二章 Mac通过Homebrew安装Docker 文章目录 前言Mac通过Homebrew安装本机环境系统要求terminal命令安装查看安装信息配置阿里云镜像加速登陆阿里云配置加速地址其他国内加速地址 总结 前言 在上一章了解了Docker容器是什么之后,本…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...
【51单片机】4. 模块化编程与LCD1602Debug
1. 什么是模块化编程 传统编程会将所有函数放在main.c中,如果使用的模块多,一个文件内会有很多代码,不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数声明,其他.c文…...
