自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 OJ1898

【代码】OJ1898。

2024-02-25 23:21:56 363

原创 OJ1902

【代码】OJ1902。

2024-02-25 23:21:02 347

原创 OJ四则运算

【代码】OJ四则运算。

2024-02-25 23:18:38 408

原创 OJ1104. 【软件认证】电话号码转换

不合法的格式:其后跟随的不是英文数字单词,如 DoubleLiu 或 DoubleDouble 都是非法的。合法格式:其后必须跟随英文数字单词,代表两个该数字。合法的电话号码要么全中文,不会含 Double;若输入的是英文数字单词或Double组成的电话号码,则输出对应的中文数字单词;输入保证每个单词都是合法的英文数字单词/中文数字单词/Double;若输入不合法,输出ERROR。若输入为中文数字单词组成的电话号码,则输出对应的英文数字单词。若输入不合法,则输出字符串ERROR。

2024-02-23 18:56:06 310

原创 OJ1104. 【软件认证】电话号码转换-待写

不合法的格式:其后跟随的不是英文数字单词,如 DoubleLiu 或 DoubleDouble 都是非法的。合法格式:其后必须跟随英文数字单词,代表两个该数字。合法的电话号码要么全中文,不会含 Double;若输入的是英文数字单词或Double组成的电话号码,则输出对应的中文数字单词;输入保证每个单词都是合法的英文数字单词/中文数字单词/Double;若输入不合法,输出ERROR。若输入为中文数字单词组成的电话号码,则输出对应的英文数字单词。若输入不合法,则输出字符串ERROR。

2024-02-21 20:33:55 377

原创 OJ1181. 【软件认证】可漫游服务区

3970001 和 600032,不在任何漫游限制范围内,因此可以漫游,按字典序降序先输出 600032。随后 m 行是用户签约的漫游限制区域的前缀范围,每行格式为start end(含start和end),start和end是长度相同的数字字符串,长度范围为[1, 6],且 start

2024-02-21 20:31:47 366

原创 排列后的数组进行归并,得最小人数构造完美答案

【代码】排列后的数组进行归并,得最小人数构造完美答案。

2024-02-20 00:40:49 325

原创 317. 多关键字排序

【代码】317. 多关键字排序。

2024-02-18 18:35:21 317

原创 OJ2344. 编号最大的高能力者

【代码】2344. 编号最大的高能力者。

2024-02-06 16:01:15 340

原创 OJ2344. 编号最大的高能力者

单调栈的参考文档:https://www.cnblogs.com/sfnz/p/16150715.html。

2024-02-06 15:51:05 313

原创 OJ1794. 【软件认证】最长的指定瑕疵度的元音子串

OJ1794. 【软件认证】最长的指定瑕疵度的元音子串

2024-02-02 00:58:11 323

原创 OJ1793-找出其中两个元素相减等于给定差值 diff 的所有不同组合的个数(双指针)

给定一个数组,每个元素的值是唯一的,找出其中两个元素相减等于给定差值 diff 的所有不同组合的个数。第三行为该数组,由单个空格分割的一组数字组成;其中元素的值范围[-20, 102400]本题注意点:超时限制,有个超级大的用例,一般的for循环会超时,所以尽量用双指针。第一行为一个整数,表示给定差值diff;组合是无序的:如:(1, 4)和(4, 1)表示的是同一个组合。第二行也为一个数字,表示数组的长度;时间限制:1000ms, 内存限制:256MB。1个整数,表示满足要求的不同组合的个数。

2024-01-30 10:28:40 372

原创 [华为OJ]

华为OJ

2022-08-23 20:28:02 202 1

原创 [华为机试]

字符串分隔

2022-08-22 23:32:46 146

原创 【无标题】

电话号码组合

2022-08-21 16:05:46 119

原创 华为入门级刷题

字符串

2022-08-08 22:40:04 1844

原创 牛客-HJ35 蛇形矩形(三角形数组)

题目描述蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。例如,当输入5时,应该输出的三角形为:1 3 6 10 152 5 9 144 8 137 1211示例1输入:4输出:1 3 6 102 5 94 87题目分析根据示例分析:按照从短到长的小对角线走i+j=n=0 i=0,j=0(1)n=1 i=1,j=0(2); i=0;j=1(3)n=2 i=2,j=0(4);

2021-08-05 22:28:59 571

原创 牛客 HJ26 字符串排序

题目描述描述编写一个程序,将输入字符串中的字符按如下规则排序。规则 1 :英文字母从 A 到 Z 排列,不区分大小写。如,输入: Type 输出: epTy规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入: BabA 输出: aABb规则 3 :非英文字母的其它字符保持原来的位置。如,输入: By?e 输出: Be?y题目分析定义TreeMap,其key为a-z,value为String Builder类型;例如str=AAaaBb,则key为a 时,对应

2021-08-04 22:49:40 209

原创 牛客 HJ102 - 字符统计

题目描述输入一个只包含小写英文字母和数字的字符串,按照不同字符统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASCII码由小到大排序输出。本题含有多组样例输入示例1输入:aaddccdc1b1bbbbbbbbb输出:cdab1题目分析定义数组36 * 2, 第一列表示字符对应的数字,第二列表示频数;利用字符串遍历填充数组不用2 * 36, 因为36 * 2更加方便表示,例如 int[i] [0];定义的是整型数组 int[][], 所以需要把字符转化为数字存储,0

2021-08-02 23:10:25 290

原创 华为机试 HJ22. 汽水瓶

题目描述有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入描述:输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),

2021-07-18 22:37:35 127

原创 剑指offer 33. 判断数组是否为某二叉树的后序遍历

题目描述剑指offer 33输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true题目分析这道题主要根据二叉搜索树的规则,左子树 < 右子树 < 根节点根据递归分治的思想。//根据二叉搜索树的大小规则,最后一个为根节点,遍历数组,比根节点小的那段是左子树的,比根节

2021-07-18 22:10:30 127

原创 华为机试-HJ15 求int值二进制的1的个数

题目描述输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。##题目分析利用位运算的右移,可以不断将最右边的二进制位挤掉,使得从右到左的每一位都可以当做最后一位,其与1相与,若为1,则当前二进制位为1,则计数+1;eg:3的二进制为0011;初始化cnt=0(1的个数)0011(x = 4) 与1(0001)相与,等于1 ,即得最后一位为1,cnt+1;将0011右移1位(x >> 1)得到001,与1(0001)相与,等于1,即得当前最后一位的实际的倒数第二位

2021-07-16 22:53:16 185

原创 剑指offer 32-3 按照之字形打印二叉树

题目描述剑指offer 32-3请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。题目分析在层次遍历的基础上,对每层的列表level进行处理,如果是奇数层(第一层的索引为1)顺序,偶数层反序;列表反序的内置函数为:Collections.reverse(list);与数组反序的很像:Arrays.sort(arr);/** * Definition for a binary tree no

2021-07-16 22:26:31 71

原创 华为机试-HJ21 简单密码

题目描述大家都知道手机上的字母: 1–1, abc–2, def–3, ghi–4, jkl–5, mno–6, pqrs–7, tuv–8 wxyz–9, 0–0,就这么简单,渊子把密码中出现的小写字母都变成对应的数字,数字和其他的符号都不做变换;声明:密码中没有空格,而密码中出现的大写字母则变成小写之后往后移一位,如:X,先变成小写,再往后移一位,不就是y了嘛,简单吧。记住,z往后移是a哦。import java.util.*;public class Main{ public stat

2021-07-15 22:31:06 292

原创 剑指offer 32-1从上到下打印树-层次遍历

题目描述从上到下,从左到右遍历树。层次遍历剑指offer 32-1题目分析用队列,Queue是接口,其实现类是LinkedList;将结果添加到列表忠,但是最后需要转换为数组;需要考虑root为空的特殊情况。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * Tree

2021-07-15 21:28:52 78

原创 剑指offer 56-2仅仅一个数x出现一次,其余出现三次,找x

题目描述在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例 1:输入:nums = [3,4,3,3]输出:4示例 2:输入:nums = [9,1,7,9,7,9,7]输出:1##题目分析:可以用两种方法。位运算求和法。这种要注意求完和有可能会很大,超过int范围,所以要将和的变量定义为long,最后再强制转为int。/*class Solution { public int singleNumber(int[

2021-07-13 22:36:46 142 1

原创 56.合并区间

题目描述力扣56以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入:intervals = [

2021-07-02 22:48:28 65

原创 剑指 Offer 48. 最长不含重复字符的子字符串

题目描述剑指 Offer 48请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。输入: “abcabcbb”输出: 3解释: 因无重复字符的最长子串是 “abc”,所以长度为 3。输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。题目分析这也是一道关于窗口滑动的问题,算是比较简单的了,因为 只有一个字符串。设置left、r

2021-06-12 12:24:41 81

原创 剑指 Offer 66. 构建乘积数组

题目描述剑指offer 66给定数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。输入: [1,2,3,4,5]输出: [120,60,40,30,24]题目分析题目所求的数组:第i个元素 = 原数组中除了第i个元素其余元素所有元素的乘积。那么对于每个i(元素)来说,可以以第i个元素为分割点,将数组分

2021-06-12 10:47:30 95

原创 剑指 Offer 31. 栈的压入、弹出序列

剑指offer 31题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(2),

2021-05-31 20:05:01 68

原创 剑指 Offer 59 - II. 队列的最大值

队列的最大值剑指offer 59-II题目描述请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1示例 1:输入:[“MaxQueue”,“push_back”,“push_back”,“max_value”,“pop_front”,“max_value”][[],[1],[2],[],[],[]]输出:

2021-05-31 17:03:09 100

原创 力扣316. 去除重复字母

去除重复字母力扣316题目描述给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。字符串都由小写字母组成。题目分析需要维护一个字符串对应的Hash频数数组freq,用来存储每个元素所出现的次数。数组的下标 =字符-‘a’,表示该字母所对应的数值,存储的元素表示该字母在字符串中总共出现的次数。eg:s = abccaa, freq[a-‘a’] = 3;为保证字典序尽量最小,我们可以维护一个栈。尽量单调递增栈

2021-05-31 16:14:43 169

原创 在排序树组中查找元素的第一个位置和最后一个位置

在排序树组中查找元素的第一个位置和最后一个位置leetcode 34题目描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]输入:nums = [], target = 0输出:[-1,-1

2021-05-27 16:47:37 103

原创 Map的常用方法测试

Map的常用方法测试package com.neu.Collection;import com.sun.activation.registries.MailcapParseException;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;/** * @author 王永利 * @date

2021-03-27 18:58:43 1079

原创 半有序数组的最值查找(二分法)

1. 旋转数组的最小值剑指offer 11题目描述:数组的旋转,就是把一个数组开始的若干个元素搬到数组的末尾。输入一个有序数组的旋转数组,求出其最小值的高效算法。示例1:输入:[3,4,5,1,2] 输出:1示例2:输入:[2,2,2,0,1] 输出:0示例3 : 输入:[1,1,1,0,1] 输出:0思路其中横轴表示数组元素的下标,纵轴表示数组元素的值。图中标出了最小值的位置,是我们需要旋转的目标。我们考虑数组中的最后一个元素 x:在最小值右侧的

2021-03-18 20:49:23 234

原创 Java学习-值传递和地址传递

java学习-值传递和地址传递java的面向对象中学到了值传递和地址传递,由于这个知识多次搞错,在此记录一下。值传递和地址传递:如果变量是基本数据类型,此时赋值的是变量所保存的数据值。如果变量是引用数据类型(例如数组,对象),此时赋值的是变量所保存的数据的地址值。内存分析:代码测试class Data { int a; int b;}public class valueTrans { public static void main(String[] args)

2021-03-18 14:10:19 184

原创 二维数组的高效查找

二维数组的查找剑指offer 04题目描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。class Solution { public boolean findNumberIn2DArray(int[][] matrix, int target) { if(matrix == null || matrix.length == 0

2021-03-17 18:40:56 478 1

原创 翻转字符串里的单词(4种解法)

力扣151:翻转字符串里的单词题目描述:给定一个字符串,逐个翻转字符串中的每个单词。说明:无空格字符构成一个 单词 。输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。示例 1:输入:“the sky is blue”输出:“blue is sky the”示例 4:输入:s = " Bob Loves Alice "输出:“Alice Loves Bob”这道题目用了四种不同的解法

2021-03-13 20:24:26 3031

原创 Java基础学习

String类####1. 字符串的反转题目描述:将一个字符串反转。将字符串中指定部分进行反转。比如“abcdefg”反转为“abfedcg”package java.atguigu.String;public class ReverseString { //使用String的拼接 public String Reverse(String str, int beginIndex, int endIndex){//左闭右开 //第一部分 Strin

2021-03-11 16:58:36 66

原创 树的基础知识2-二叉树的构造

1. 从中序和后序遍历构造二叉树力扣106题目描述:根据一棵树的中序遍历与后序遍历构造二叉树。你可以假设树中没有重复的元素。中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树:3/ 9 20/ 15 7class Solution { int[] inorder;//因为在creatTree方法中用到这两个数组变量了 int[] preorder; Map<Int

2021-03-06 16:23:16 348 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除