- 博客(37)
- 收藏
- 关注
原创 19049 仓库配送
Description网易2021校招笔试-算法工程师(正式第二批)网易严选建有N个自营仓分布在全国各地,标记为仓库1到N。给定一个配货时间组(v,u,w),v为出发仓库,u为目标仓库,w为从出发仓库到目标仓库的耗时时间。可能存在仓库间过远,无法支持调拨转货。指定一个出发仓库K,我们需要将供应商发送到K仓库的货配送到各个仓库。问配送到所有可到达仓库所要最短时间?如果无法全部调拨到,则返回-1.输入格式第一行三个正整数,由空格分割,分别表示仓库个数N,出发仓K,以及配送.
2022-05-31 13:19:17 240
原创 19011 小猿的依赖循环
Description猿辅导2021校园招聘笔试(算法二) 小猿在加载一个网页,这个网页共需要N个相关资源,这些资源之间有一些依赖关系。如果这些资源中存在循环依赖,我们认为这个网页不能加载成功,否则可以加载成功。存在循环依赖是指,这些资源中存在资源X,X依赖的资源Y直接或间接依赖于X。你能帮助小猿判断一下这个网页能否加载成功吗?输入格式第一行输入T(T ≤ 10),表示输入T组数据。每组数据第1行,输入一个数N(1 ≤ N ≤ 500)表示该组case有编号为1~N的N项资.
2022-05-28 16:08:41 158
原创 剑指 Offer II 112. 最长递增路径
思路记录:记忆化搜索,每次把结果记录下来,如果后面再碰到,直接返回结果class Solution { int[] dx= {-1,0,1,0}; int[] dy= {0,1,0,-1}; int[][] mk; int[][] matrix; int ans=1; int n,m; public int longestIncreasingPath(int[][] matrix) { this.matrix=matrix;...
2022-05-09 16:50:27 60
原创 18907 雪花 雪花 雪花(哈希法)
时间限制:1000MS 代码长度限制:10KB提交次数:0 通过次数:0题型: 编程题语言: G++;GCCDescription题目来自POJ3349有N片雪花,每片雪花由六个角组成,每个角都有长度。第i片雪花六个角的长度从某个角开始顺时针依次记为ai,1,ai,2,…,ai,6。因为雪花的形状是封闭的环形,所以从任何一个角开始顺时针或逆时针往后记录长度,得到的六元组都代表形状相同的雪花。例如1,2,3,4,5,6和3,4,5,6,1,2就是形状相同的雪花。...
2022-05-08 16:20:35 286 1
原创 016. 不含重复字符的最长子字符串
思路记录:最长无重复子串,用双指针法,只要用一个map把出现字母的位置给记录下来,如果在循环的过程再次出现并且出现的位置比较l的位置后,那么说明当前这个子串重复,重复的话只要把l指针放到重复的字母前面即可,同时更新指针的位置import java.util.HashMap;import java.util.Map;class Solution { public int lengthOfLongestSubstring(String s) { char[] ch=s...
2022-05-08 16:18:19 91
原创 18908 字符串哈希
18908字符串哈希时间限制:1000MS 代码长度限制:10KB提交次数:0 通过次数:0题型: 编程题语言: G++;GCCDescription(1)这一段是乱七八糟的教学模块,看不清楚就百度吧。字符串哈希可以用于快速比较两个字符串是否相等,或者快速找到子串t在主串s中的位置(模式匹配)。在完成预处理之后,比较任意两个字符串相等的复杂度O(1)。模式匹配的复杂度和kmp算法接近,为O(n+m)。那么如何为字符串设计哈希函数呢?最简单的方法:把字符串直接映射为整...
2022-05-07 20:42:14 303
原创 021. 删除链表的倒数第 n 个结点
思路记录:题目说明n是合法的,这种删除节点的题目一半都会用一个先驱节点指向链表的开头,用双指针法,让第一个指针先走n步,第二个指针在一起走,直到第一个指针指向空import java.util.List;class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode left=new ListNode(); ListNode ans=left; ...
2022-05-05 16:47:45 426
原创 剑指 Offer II 054. 所有大于等于节点的值之和
class Solution { int pre=0; public TreeNode convertBST(TreeNode root) { dfs(root); return root; } void dfs(TreeNode T){ if(T==null) return ; dfs(T.right); T.val+=pre; pre=T.val; dfs(T.
2022-05-05 10:38:58 150
原创 剑指 Offer II 047. 二叉树剪枝
思路记录:后续遍历的思想,在叶子节点开始,判断这个节点是否能删除,如果这个节点的左节点能删除(即是返回0),右节点也能删除(得到返回0),并且这个节点的值也是零,那么这个节可以删除,返回给上一层0即可class Solution { public TreeNode pruneTree(TreeNode root) { int ans=dfs(root); return ans==0?null:root; } int dfs(TreeNode ..
2022-05-02 23:29:00 458
原创 114. 二叉树展开为链表
思路:用O(1)空间复杂度的方法转换,先找到当前节点root的左树的最右的节点pre,再把当前节点的右子树插到pre,在把root的左节点插入到root的右子树,把root的左子树设置为null,对每个右节点重复上面的操作即可class Solution { public void flatten(TreeNode root) { while(root!=null){ if(root.left==null){ root=roo...
2022-05-02 21:37:13 334
原创 124. 二叉树中的最大路径和
思路记录:贪心算法,从叶子节点开始每次往上一层提供最大的节点值,在每个节点更新答案,因为可能是负值,所以要判断是否大于零才能加class Solution { int ans=Integer.MIN_VALUE; public int maxPathSum(TreeNode root) { dfs(root); return ans; } int dfs(TreeNode T){ if(T==null) retu...
2022-05-01 21:42:05 483
原创 剑指 Offer II 010. 和为 k 的子数组
思路记录:求区间和为k的区间数量,如何判断区间[i,j]和是否为k,只需要计算前缀和prefix(i)-prefix(j-1)的差值是否为k即可,从数组第一个数量开始把每个元素的前缀和都记录到map中,如果已经出现过,那么就数量加一,没出现过就记录数量为一,如果map中存在前缀和为prefix(i)-k,那么这些区间就是和为k的区间,所有的数量相加即为answerimport java.util.HashMap;import java.util.Map;class Solution { ..
2022-05-01 15:16:30 190
原创 525. 连续数组
思路记录:前缀和加哈希,求1和0的数量相等的最大长度区间,首先:如何判断区间内1和0数量相等,比如说区间[i,j],如果i-1的前缀和等于j的前缀和那么,i,j即为符合条件的区间,因为是最大的区间长度,所以只需要记录第一次前缀和出现的位置即可,后面如果相等则做出判断import java.util.HashMap;class Solution { public int findMaxLength(int[] nums) { int[] prifix=new int[n...
2022-05-01 14:50:25 197
原创 18936 手串
Description字节跳动2018校招Android方向(第二批) 作为一个手串艺人,有金主向你订购了一条包含n个杂色串珠的手串——每个串珠要么无色,要么涂了若干种颜色。为了使手串的色彩看起来不那么单调,金主要求,手串上的任意一种颜色(不包含无色),在任意连续的m个串珠里至多出现一次(注意这里手串是一个环形)。手串上的颜色一共有c种。现在按顺时针序告诉你n个串珠的手串上,每个串珠用所包含的颜色分别有哪些。请你判断该手串上有多少种颜色不符合要求。即询问有多少种颜色在任意连续m个串珠中出现..
2022-04-23 13:31:11 831
原创 P3853 [TJOI2007]路标设置
题目背景B 市和 T 市之间有一条长长的高速公路,这条公路的某些地方设有路标,但是大家都感觉路标设得太少了,相邻两个路标之间往往隔着相当长的一段距离。为了便于研究这个问题,我们把公路上相邻路标的最大距离定义为该公路的 “空旷指数”。题目描述现在政府决定在公路上增设一些路标,使得公路的“空旷指数”最小。他们请求你设计一个程序计算能达到的最小值是多少。请注意,公路的起点和终点保证已设有路标,公路的长度为整数,并且原有路标和新设路标都必须距起点整数个单位距离。输入格式第 1 行包括三个数 L、
2022-04-22 19:27:06 203
原创 P3884 [JLOI2009]二叉树问题
如下图所示的一棵二叉树的深度、宽度及结点间距离分别为:深度:4 宽度:4(同一层最多结点个数)结点间距离: ⑧→⑥为8 (3×2+2=8)⑥→⑦为3 (1×2+1=3)注:结点间距离的定义:由结点向根方向(上行方向)时的边数×2,与由根向叶结点方向(下行方向)时的边数之和。输入格式输入文件第一行为一个整数n(1≤n≤100),表示二叉树结点个数。接下来的n-1行,表示从结点x到结点y(约定根结点为1),最后一行两个整数u、v,表示求从结点u到结点v的距离。输出格式三个
2022-04-21 13:46:54 188
原创 ssm框架整合--简单图书管理系统
0.导入项目依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.
2022-04-18 00:16:27 869 1
原创 P1434 [SHOI2002]滑雪
题目描述Michael 喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael 想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9一个人可以从某个点滑向上下左右相邻四个点
2022-04-09 13:51:04 89
原创 P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles
题目描述观察下面的数字金字塔。写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的样例中,从 7 \to 3 \to 8 \to 7 \to 57→3→8→7→5 的路径产生了最大输入格式第一个行一个正整数 rr ,表示行的数目。后面每行为这个数字金字塔特定
2022-04-09 12:42:11 889
原创 P2392 kkksc03考前临时抱佛脚
题目背景kkksc03 的大学生活非常的颓废,平时根本不学习。但是,临近期末考试,他必须要开始抱佛脚,以求不挂科。题目描述这次期末考试,kkksc03 需要考44科。因此要开始刷习题集,每科都有一个习题集,分别有s_1,s_2,s_3,s_4s1,s2,s3,s4道题目,完成每道题目需要一些时间,可能不等(A_1,A_2,\ldots,A_{s_1}A1,A2,…,As1,B_1,B_2,\ldots,B_{s_2}B1,B2,…,Bs2,C_1,C_2,\ldo...
2022-04-08 22:22:45 113
原创 P1217 [USACO1.5]回文质数 Prime Palindromes
题目描述因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。写一个程序来找出范围 [a,b] (5 \le a < b \le 100,000,000)[a,b](5≤a<b≤100,000,000)( 一亿)间的所有回文质数。输入格式第 1 行: 二个整数 a 和 b .输出格式输出一个回文质数的列表,一行一个。#include <bits/stdc++.h>using namespace std;b
2022-04-08 12:35:53 67
原创 BM57 岛屿数量
描述给一个01矩阵,1代表是陆地,0代表海洋,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。岛屿: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。例如:输入[[1,1,0,0,0],[0,1,0,1,1],[0,0,0,1,1],[0,0,0,0,0],[0,0,1,1,1]]对应的输出为3(注:存储的01数据其实是字符'0','1')import java.util.*;public class Solutio.
2022-04-07 22:45:53 245
原创 P1443 马的遍历
#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> #include <iostream> #include <bits/stdc++.h> using namespace std;int n,m,qx[100000],f=0,r=0;int qy[100000];int a[500][500];int...
2022-04-05 13:31:46 53
原创 P1036 [NOIP2002 普及组] 选数
题目描述已知 nn 个整数 x_1,x_2,\cdots,x_nx1,x2,⋯,xn,以及 11 个整数 kk(k<nk<n)。从 nn 个整数中任选 kk 个整数相加,可分别得到一系列的和。例如当 n=4n=4,k=3k=3,44 个整数分别为 3,7,12,193,7,12,19 时,可得全部的组合与它们的和为:3+7+12=223+7+12=223+7+19=293+7+19=297+12+19=387+12+19=383+12+19=343+12+19=34
2022-04-04 23:17:02 136
原创 [USACO1.5]八皇后 Checker Challenge
洛谷1219题目描述一个如下的 6 \times 66×6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列 2\ 4\ 6\ 1\ 3\ 52 4 6 1 3 5 来描述,第 ii 个数字表示在第 ii 行的相应位置有一个棋子,如下:行号 1\ 2\ 3\ 4\ 5\ 61 2 3 4 5 6列号 2\ 4\ 6\ 1\ 3\ 52 4 6 1 3 5这只是棋子放置的一个解。请编一
2022-04-04 22:38:26 77
原创 19104 机器人的运动范围
19104 机器人的运动范围时间限制:1000MS 代码长度限制:10KB提交次数:0 通过次数:0题型: 编程题 语言: 不限定Description来源:牛客NC280地上有一个 rows 行和 cols 列的方格。坐标从 [0,0] 到 [rows-1,cols-1] 。一个机器人从坐标 [0,0] 的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于 threshold 的格子。 例如,当 threshold 为 18.
2022-04-03 20:01:42 234
原创 19120 病毒扩散
DescriptionSDUT 4783 2019-ncov的突然出现扰乱了人们的日常生活,它具有极强的传染性,可以快速的在人群中扩散,现在研究人员正在模拟其在人群中的扩散情况.在一个n*m矩阵所示的人群中,*为普通人,#为佩戴口罩的人,@为病毒携带者,已知每秒每位病毒携带者会将病毒传染给相邻八个方向的未戴口罩的普通人。请问 x 秒后会有多少名传染者(初始为第0秒)?输入格式第一行输入空格分隔的三个数n,m,x代表n行,m列的空间,x秒(n,m<=1000)。接下来n
2022-04-03 19:13:14 1023
原创 18941 压缩算法
腾讯2020校园招聘-后台 第一题小Q想要给他的朋友发送一个神秘字符串,但是他发现字符串的过于长了,于是小Q发明了一种压缩算法对字符串中重复的部分进行了压缩,对于字符串中连续的m个相同字符串S将会压缩为[m|S](m为一个整数且1<=m<=100),例如字符串ABCABCABC将会被压缩为[3|ABC],现在小Q的同学收到了小Q发送过来的字符串,你能帮助他进行解压缩么? 解题建议:(1)由于涉及到字符串的重复,尽量不要再使用C语言的字符数组,用C++的string类型会更容易实现.
2022-04-03 17:00:16 1034
原创 19072 数字字符串转化成IP地址
Description百度面试题现在有一个只包含数字的字符串,将该字符串转化成IP地址的形式,返回所有可能的情况。例如:给出的字符串为"25525522135",返回["255.255.22.135", "255.255.221.35"].要求:空间复杂度 O(n),时间复杂度 O(n!)。注意:ip地址是由四段数字组成的数字序列,格式如 "x.x.x.x",其中 x 的范围应当是 [0,255]。有情提示:类似这样的数字00010,只能划分为0.0.0.10,不能划分为00.0.
2022-04-02 22:29:52 339
原创 整数分解(dfs)
题目描述任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。现在给你一个自然数n,要求你求出n的拆分成一些数字的和。每个拆分后的序列中的数字从小到大排序。然后你需要输出这些序列,其中字典序小的序列需要优先输出。输入格式输入:待拆分的自然数n。输出格式输出:若干数的加法式子。简单的搜索题目,直接dfs即可 #include <stdio.h> #include <string.h> #include <math.h> #inc
2022-03-30 23:15:01 169
原创 (模拟入门)高精度加法
高精度加法,相当于a+b problem,不用考虑负数.输入格式分两行输入。a,b输出格式输出只有一行,代表a+b 的值思路记录:模拟的入门级题目输入两字符串,先把位数对其,在较小的字符串前补零,再转为整形字符数组,在尾部开始循环,把结果压入栈中,循环结束后判断pre是否为零,不为零则需压入栈中,再把栈元素输出即为结果...
2022-03-27 17:01:05 100
原创 18714 迷宫问题
输入格式第一行两个整数n和m,代表n行m列。(1<=n,m<=10)下面n行每行m个字符,0代表可以通行,1代表不可以通行。输出格式如果能从迷宫走出,输出yes,否则输出no。输入样例8 80010001000100010000011000111000000010000010001000111011000001000输出样例yes思路记录:一开始不理解递归的用法,有点难以理解,其实认真想一下还是蛮简单...
2022-03-26 16:01:34 140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人