自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 刷题的一天

1、有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。输入描述:输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目。接下来的n行,每行有一个1到40之间的正整数,分别给出a1,a2…….

2022-05-22 20:33:30 158

原创 PTA题集

1、6-5 链式表操作集本题要求实现链式表的操作集。函数接口定义:Position Find( List L, ElementType X ); List Insert( List L, ElementType X, Position P ); List Delete( List L, Position P ); 其中List结构定义如下:typedef struct LNode *PtrToLNode; struct LNode { ElementType Data; PtrToLN.

2022-05-17 20:12:45 147

原创 几点钟问题

1、有时候人们用四位数字表示一个时间,比如1106表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为530;0 点 30 分表示为030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。输入格式:输入在一行中给出 2 个整数,分别是四位数字表示的起始时间...

2022-05-15 14:47:33 629

原创 求自定类型元素序列的中位数

1、本题要求实现一个函数,求N个集合元素A[]的中位数,即序列中第⌊(N+1)/2⌋大的元素。其中集合元素的类型为自定义的ElementType。其中给定集合元素存放在数组A[]中,正整数N是数组元素个数。该函数须返回N个A[]元素的中位数,其值也必须是ElementType类型。接口函数为:ElementType Median( ElementType A[], int N );该问题可以考虑利用排序完成,之后输出中位数即可。但使用什么排序是一个值得思考的问题。希尔排序在这个问题中刚好可以使用.

2022-05-11 20:40:27 1364

原创 实现顺序表的操作集

函数接口定义:List MakeEmpty();Position Find( List L, ElementType X );bool Insert( List L, ElementType X, Position P );bool Delete( List L, Position P );List函数的结构如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Da...

2022-05-05 22:58:08 546

原创 图论问题1

1、小镇里有 n 个人,按从 1 到 n 的顺序编号。传言称,这些人中有一个暗地里是小镇法官。如果小镇法官真的存在,那么:小镇法官不会信任任何人。每个人(除了小镇法官)都信任这位小镇法官。只有一个人同时满足属性 1 和属性 2 。给你一个数组 trust ,其中 trust[i] = [ai, bi] 表示编号为 ai 的人信任编号为 bi 的人。如果小镇法官存在并且可以确定他的身份,请返回该法官的编号;否则,返回 -1 。示例:输入:n = 2, trust = [[1,2]] 输.

2022-05-05 22:56:03 155

原创 刷题的一天——基础算法

1、给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807.该题主要是链表的相加,比较简单。/** * Definition for singly-linked list. * struct...

2022-05-05 20:59:25 104

原创 刷题的一天——递归

1、将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4]这个题目本来想着重新设置一个链表然后挨个对比两个链表的元素大小完成。但是要求了在两个链表基础上组成,所以这种方法就不可行。因此可以选择用递归的方法,在原有基础上完成。代码:(1)递归/** * Definition for singly-linked list. * struct ...

2022-04-14 11:02:04 485

原创 刷题的一天——BFS和DFS

1、给定一个由 0 和 1 组成的矩阵 mat,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例:输入:mat = [[0,0,0],[0,1,0],[0,0,0]] 输出:[[0,0,0],[0,1,0],[0,0,0]]对于这个题我们首先可以想到广度优先搜索。(1)BFS代码:class Solution {public: static constexpr int dirs[4][2]{{-1..

2022-04-13 20:19:11 60

原创 刷题的一天——二叉树

1、给你两棵二叉树: root1 和 root2 。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。返回合并后的二叉树。注意: 合并过程必须从两个树的根节点开始示例:输入:root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7] 输出:[3,4,5,5,.

2022-04-12 22:15:02 92

原创 刷题的一天——深度优先搜索与广度优先搜索

1、有一幅以 m x n 的二维整数数组表示的图画 image ,其中 image[i][j] 表示该图画的像素值大小。你也被给予三个整数 sr , sc 和 newColor 。你应该从像素 image[sr][sc] 开始对图像进行 上色填充 。为了完成 上色工作 ,从初始像素开始,记录初始坐标的 上下左右四个方向上 像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应 四个方向上 像素值与初始坐标相同的相连像素点,……,重复该过程。将所有有记录的像素点的颜色值改为 ne.

2022-04-11 23:53:59 902

原创 刷题的一天——滑动窗口

有一说一今天的题有点难。1、给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例:输入: s = "abcabcbb"输出: 3 这个题让人想到了双指针,但由于是字符串,所需要通过一定工具来记录双指针之间的字符,进而可以想到用哈希表的方式来完成。如果表中(也就是窗口中有重复,则先记录子串长度再逐渐删除重复元素以及之前的元素)。因此可以有以下代码:class Solution {public: int lengthOfLongestSubstri

2022-04-10 16:11:25 79

原创 刷题的一天——链表结构

1、给定一个头结点为head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = ...

2022-04-09 17:50:05 1204

原创 刷题的一天——排序+双指针

1、给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。示例:输入:nums1 = [1,2,3.

2022-04-08 20:57:10 87

原创 刷题的一天——双指针2

1、编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例:输入:s = ["h","e","l","l","o"]输出:["o","l","l","e","h"]这个大概也是用双指针的方法,so easy。代码:class Solution {public: void reverseString(vector<char>&am.

2022-04-08 20:00:03 3782

原创 刷题的一天——数据结构(数组)

1、给你一个整数数组nums。如果任一值在数组中出现至少两次,返回true;如果数组中每个元素互不相同,返回false。示例:输入:nums = [1,2,3,1] 输出:true输入:nums = [1,2,3,4] 输出:false代码:大概有两种方法可以完整这个任务,一是可以先排序然后查找是否有重复元素,有则输出true,遍历完毕数组没有重复则输出false;二是通过哈希表完成任务。(1)排序法:class Solution {public: boo...

2022-04-07 21:30:22 616

原创 刷题的一天——双指针

1、给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。你可以假设每个输入 只对应唯一的答案 ,而且你.

2022-04-07 19:48:48 222

原创 刷题的一天——二分查找

关键词:二分查找题目来源:leetcode1、给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例:输入: nums= [-1,0,3,5,9,12], target = 9输出: 4输入: nums= [-1,0,3,5,9,12], target = 6输出: -1代码:class Solution {public: int search

2022-04-07 12:51:09 64

原创 RoseTTAFold的学习心得

小甘的RoseTTAFold学习心得

2022-04-06 23:49:11 2977 1

原创 AlphaFold学习心得

小甘的AlphaFold学习心得

2022-04-06 23:45:45 726

空空如也

空空如也

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

TA关注的人

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