自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ashtime

ashtime

  • 博客(57)
  • 收藏
  • 关注

原创 PAT乙级-1002-写出这个数

✏️题目说明1002 写出这个数 (20 分)读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu????分析首先将string里的数字累加,把数字再转为st

2022-01-19 18:26:43 775

原创 PTA乙级-1001-害死人不偿命的猜想

✏️题目说明1001 害死人不偿命的(3n+1)猜想 (15 分)卡拉兹(Callatz)猜想:对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……我们今天的题目不

2022-01-19 18:24:25 326

原创 编程题-02-线性结构2-一元多项式的乘法与加法运算

题目说明设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2 6 1 -2 03 5 20 -7 4 3 1输出样例:15 24 -25 22 30 21 -1

2021-11-16 15:16:03 787

原创 MOOC浙大数据结构-二叉搜索树

什么是二叉搜索树二叉搜索树(BST,Binary Search Tree),也称二叉排序树或者二叉查找树二叉搜索树:一颗二叉树,可以为空;如果不为空,满足以下性质:非空左子树的所有键值小于其根结点的键值。非空右子树的所有键值大于其根结点的键值。左、右子树都是二叉搜索树。查找操作FindPosition Find(ElementType X,BinTree BST){ if(!BST)return NULL; // 查找失败 if(x > BST->Data

2021-11-04 16:27:21 192

原创 MOOC浙大数据结构-二叉树的遍历

二叉树的遍历前序遍历遍历过程:访问根节点中序遍历其左子树中序遍历其右子树void InOrderTraversal(BinTree BT){ if (BT) { printf("%d", BT->Data); InOrderTraversal(BT->Left); InOrderTraversal(BT->Right); }}非递归遍历算法使用堆栈void InOrderTraversal(BinTree BT){ BinTree T = B

2021-11-02 17:15:16 437

原创 MOOC浙大数据结构-二叉树

本文是MOOC浙大数据结构课程的笔记课程详细地址二叉树的定义二叉树T:一个有穷的结点集合。这个集合可以为空若不为空,则它是由根结点和称为其左子树TL和右子树TR的两个不相交的二叉树组成。五种基本形态空树一个根结点左结点不空,右结点空左结点空,右结点不空左右结点都不空二叉树的子树有左右之分特殊的二叉树斜二叉树(Skewed Binary Tree)完美二叉树(Perfect Binary Tree)也称满二叉树(Full Binary Tre

2021-11-01 12:02:24 465

原创 MOOC浙大数据结构-树

本文是MOOC浙大数据结构课程的笔记课程详细地址什么是树?客观世界中许多事物存在层次关系分层次组织在管理上具有更高的效率!栗子:从数据管理的基本操作之一:查找 来看查找(Searching)根据某个给定的关键字 K,从集合 R中找出关键字与 K 相同的记录静态查找:集合中的记录是固定的 (没有插入删除操作)动态查找:集合中的记录是动态变化的 (有插入删除操作)静态查找顺序查找一种实现方式是通过边界,如果查找的范围到达了边界就退出循环还有一种是哨兵,通过哨兵来判断查找是

2021-10-28 17:51:26 227

原创 03-树1 树的同构

中国大学MOOC-陈越、何钦铭-数据结构-2021秋03-树1 树的同构 (25 分)给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图1图2现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此

2021-10-26 14:20:26 93

原创 01-复杂度3 二分查找

题目说明本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */};L是用户传入的一个线性表,其中ElementTyp

2021-10-12 14:22:23 111

原创 LeetCode#430. 扁平化多级双向链表

430. 扁平化多级双向链表难度:中等来源:LeetCode多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。示例 1:输入:head = [1,2,3,4,5,6,null,null,null,7,8,9,10,null,null,11,12]输出:[1,2,3,7,8,11,1

2021-09-24 11:51:30 75

原创 LeetCode#326. 3的幂

326. 3的幂难度:简单来源:LeetCode给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x示例 1:输入:n = 27输出:true示例 2:输入:n = 0输出:false示例 3:输入:n = 9输出:true示例 4:输入:n = 45输出:false提示:-231 <= n <= 231 - 1进阶:你

2021-09-23 15:47:29 93

原创 LeetCode#725. 分隔链表

725. 分隔链表难度:中等来源:LeetCode给你一个头结点为 head 的单链表和一个整数 k ,请你设计一个算法将链表分隔为 k 个连续的部分。每部分的长度应该尽可能的相等:任意两部分的长度差距不能超过 1 。这可能会导致有些部分为 null 。这 k 个部分应该按照在链表中出现的顺序排列,并且排在前面的部分的长度应该大于或等于排在后面的长度。返回一个由上述 k 部分组成的数组。示例 1:输入:head = [1,2,3], k = 5输出:[[1],[2],[3],[],[]

2021-09-23 15:46:16 94

原创 LeetCode#383. 赎金信

383. 赎金信难度:简单来源:LeetCode给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。)示例 1:输入:ransomNote = "a", magazine = "b"输出:f

2021-09-21 23:24:09 76

原创 LeetCode#58. 最后一个单词的长度

58. 最后一个单词的长度难度:简单来源:LeetCode给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = "Hello World"输出:5示例 2:输入:s = " fly me to the moon "输出:4示例 3:输入:s = "luffy is still joyboy"输出:6提示:1 <= s.lengt

2021-09-21 23:23:59 102

原创 LeetCode#387. 字符串中的第一个唯一字符

387. 字符串中的第一个唯一字符难度:简单来源:LeetCode给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = "leetcode"返回 0s = "loveleetcode"返回 2**提示:**你可以假定该字符串只包含小写字母。哈希表class Solution { public int firstUniqChar(String s) { Map<Character, Integer> h

2021-09-21 13:32:28 68

原创 LeetCode#292. Nim 游戏

292. Nim 游戏难度:简单来源:LeetCode你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头。你们轮流进行自己的回合,你作为先手。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false 。示例 1:输入:n = 4输出:false 解释:如果堆中有 4 块石头,那么你永远不会赢得比赛;

2021-09-18 14:30:44 65

原创 LeetCode#118. 杨辉三角

118. 杨辉三角难度:简单来源:LeetCode给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例 1:输入: numRows = 5输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2:输入: numRows = 1输出: [[1]]提示:1 <= numRows <= 30class Solution { public

2021-09-16 14:44:32 64

原创 LeetCode#566.重塑矩阵

566. 重塑矩阵难度:简单来源:LeetCode在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:

2021-09-16 12:49:08 74

原创 Java的final关键字

final关键字的用处final可以修饰类、方法、变量修饰类用final修饰类,表示这个类是最终类,不能作为父类,永远不会被继承。修饰方法用final修饰方法,这个方法将无法被覆盖。修饰变量用final修饰变量基本数据类型:其数值一旦在初始化之后便不能更改。引用数据类型:其初始化之后便不能再让其指向另一个对象,但是对象的属性是可以修改的。public class Test { public static void main(String[] args) { f

2021-09-15 16:26:00 168

原创 LeetCode#162.寻找峰值

162. 寻找峰值难度:中等来源:LeetCode峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞ 。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。示例 1:输入:nums = [1,2,3,1]输出:2解释:3 是峰值元素,你的函数应该返回其索引 2。示例 2:输入:nums = [1,2

2021-09-15 11:26:46 64

原创 LeetCode#1894. Find the Student that Will Replace the Chalk

1894. 找到需要补充粉笔的学生编号难度:中等来源:LeetCode一个班级里有 n 个学生,编号为 0 到 n - 1 。每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复这个过程,重新从编号为 0 的学生开始回答问题。给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。一开始粉笔盒里总共有 k 支粉笔。当编号为 i 的学生回答问题时,他会消耗 chalk[i] 支粉笔。如果剩余粉笔数量

2021-09-10 17:49:39 82

原创 LeetCode#1221. Split a String in Balanced Strings

1221. Split a String in Balanced Strings难度:简单来源:LeetCodeBalanced strings are those that have an equal quantity of 'L' and 'R' characters.Given a balanced string s, split it in the maximum amount of balanced strings.Return the maximum amount of split b

2021-09-07 23:45:07 80

原创 LeetCode#704. Binary Search

704. Binary Search难度:简单来源:LeetCodeGiven an array of integers nums which is sorted in ascending order, and an integer target, write a function to search target in nums. If target exists, then return its index. Otherwise, return -1.You must write an algo

2021-09-07 23:35:08 113

原创 剑指Offer#10-I. 斐波那契数列

剑指 Offer 10- I. 斐波那契数列难度:简单来源:LeetCode写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例

2021-09-05 23:21:33 77

原创 LeetCode#470. Implement Rand10() Using Rand7()

470. Implement Rand10() Using Rand7()难度:中等来源:LeetCodeGiven the API rand7() that generates a uniform random integer in the range [1, 7], write a function rand10() that generates a uniform random integer in the range [1, 10]. You can only call the API ran

2021-09-05 23:12:03 83

原创 git commit emoji 使用指南

在提交消息上使用表情符号提供了一种简单的方法来识别提交的目的或意图,只需查看所使用的表情符号。commit 格式git commit 时,提交信息遵循以下格式::emoji1: :emoji2: 不超过 50 个字的摘要,首字母大写,使用祈使语气,句末不要加句号提交信息主体引用相关 issue 或 PR 编号 <#110>初次提交示例:git commit -m ":tada: Initialize Repo"emoji代码含义????:art:

2021-09-03 17:38:50 305

原创 程序员面试宝典6-面试题17.14.最小K个数

面试题 17.14. 最小K个数难度:中等来源:LeetCode设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。示例:输入: arr = [1,3,5,7,2,4,6,8], k = 4输出: [1,2,3,4]提示:0 <= len(arr) <= 1000000 <= k <= min(100000, len(arr))直接遍历class Solution { public int[] smallestK ( int[]

2021-09-03 15:08:26 78

原创 剑指Offer#22-链表中倒数第k个节点

剑指 Offer 22. 链表中倒数第k个节点难度:简单来源:LeetCode输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.双指针一前一后,中间隔k个节点,当后节点到达尾

2021-09-02 11:17:43 46

原创 LeetCode#165. Compare Version Numbers

165. Compare Version Numbers难度:中等来源:LeetCodeGiven two version numbers, version1 and version2, compare them.Version numbers consist of one or more revisions joined by a dot '.'. Each revision consists of digits and may contain leading zeros. Every revis

2021-09-01 14:25:08 87

原创 LeetCode#1109. Corporate Flight Bookings

1109. Corporate Flight Bookings难度:中等来源:LeetCodeThere are n flights that are labeled from 1 to n.You are given an array of flight bookings bookings, where bookings[i] = [firsti, lasti, seatsi] represents a booking for flights firsti through lasti (inclu

2021-08-31 15:38:41 110

原创 LeetCode#1588. Sum of All Odd Length Subarrays

1588. Sum of All Odd Length SubarraysGiven an array of positive integers arr, calculate the sum of all possible odd-length subarrays.A subarray is a contiguous subsequence of the array.Return the sum of all odd-length subarrays of ar

2021-08-29 23:13:32 111

原创 LeetCode#881. Boats to Save People

881. Boats to Save PeopleYou are given an array people where people[i] is the weight of the ith person, and an infinite number of boats where each boat can carry a maximum weight of limit. Each boat carries at most two people at the same time, provided th

2021-08-26 18:21:05 87

原创 LeetCode#121. Best Time to Buy and Sell Stock

121. Best Time to Buy and Sell Stock难度:简单You are given an array prices where prices[i] is the price of a given stock on the ith day.You want to maximize your profit by choosing a single day to buy one stock and choosing a different day in the future to

2021-08-19 15:41:04 76

原创 LeetCode#350. Intersection of Two Arrays II

350. Intersection of Two Arrays II难度:简单Given two integer arrays nums1 and nums2, return an array of their intersection. Each element in the result must appear as many times as it shows in both arrays and you may return the result in any order.Example 1:

2021-08-19 14:56:20 103

原创 数据结构#稀疏数组

概念当一个数组中大部分元素为0,或者为同一值的数字时,可以使用稀疏数组来保存该数组。稀疏数组举例{002200011000000000000000000}\left\{ \begin{matrix} 0 & 0 & 22 & 0 & 0\\ 0 & 11 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0\\0 & 0 & 0 & 0 &

2021-08-18 16:41:38 54

原创 LeetCode#1137. N-th Tribonacci Number

1137. N-th Tribonacci NumberThe Tribonacci sequence Tn is defined as follows:T0 = 0, T1 = 1, T2 = 1, and Tn+3 = Tn + Tn+1 + Tn+2 for n >= 0.Given n, return the value of Tn.Example 1:Input: n = 4Output: 4Explanation:T_3 = 0 + 1 + 1 = 2T_4 = 1 +

2021-08-18 12:24:14 91

原创 LeetCode#509. Fibonacci Number

509. Fibonacci NumberThe Fibonacci numbers, commonly denoted F(n) form a sequence, called the Fibonacci sequence, such that each number is the sum of the two preceding ones, starting from 0 and 1. That is,F(0) = 0, F(1) = 1F(n) = F(n - 1) + F(n - 2), fo

2021-08-18 11:43:12 99

原创 LeetCode#88. Merge Sorted Array

88. Merge Sorted ArrayYou are given two integer arrays nums1 and nums2, sorted in non-decreasing order, and two integers m and n, representing the number of elements in nums1 and nums2 respectively.Merge nums1 and nums2 into a single array sorted in non-

2021-08-18 11:23:53 169

原创 LeetCode#53. Maximum Subarray

53. Maximum SubarrayGiven an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.A subarray is a contiguous part of an array.Example 1:Input: nums = [-2,1,-3,4,-1,2,1,-5,4]Outp

2021-08-17 18:12:01 94

原创 LeetCode#217. Contains Duplicate

217. Contains DuplicateGiven an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct.Example 1:Input: nums = [1,2,3,1]Output: trueExample 2:Input: nums = [1,2,3,4]Output: fa

2021-08-17 15:20:57 73

空空如也

空空如也

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

TA关注的人

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