自定义博客皮肤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)
  • 收藏
  • 关注

原创 PAT 基础模拟题 1005 继续(3n+1) 测试点段错误的解决办法

1005 继续3n+1 解决段错误

2022-08-01 18:15:50 157 1

原创 旋转链表——fgriver

题目https://leetcode-cn.com/problems/rotate-list/题解NA的原因有几个:1.这里的head是带有val值的2.判断是否为空指针时顺序写反了再讲一下思路:首先看到数据集中k的范围到了2*10^9,所以我们需要将k进行优化,优化的方法就是k = k mod length那么我们先求这个链表的长度,方法就是从头遍历链表然后取长度(这里注意一下head其实算其中一个节点,与我所学链表不同)再者就是对k的优化,优化方法前者提到过,之后k = len-k的

2021-03-27 17:20:34 145

原创 1047. 删除字符串中的所有相邻重复项

本题虽然是简单题,而且我用了一个很蠢的递归方法,但是也让我逐渐明白了递归的使用题目给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:“abbaca”输出:“ca”解释:例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa

2021-03-09 21:01:26 147

原创 String操作之删除指定位置的字符

利用Iterator和erase这里我们利用string的一个函数erase(iterator)来删除指定位置上的字符,这里的iterator迭代器可以通过string.begin()获得该字符串的首迭代器,再加上不同的数值来进行删除操作。 string s = "abcdefg"; int i = 3; string::iterator itr = s.begin(); itr+=i; s.erase(itr); s.erase(itr); cout<<s;这里我们是想删除

2021-03-09 20:12:17 8727

原创 Leetcode——1128. 等价多米诺骨牌对的数量

题目:给你一个由一些多米诺骨牌组成的列表 dominoes。如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 a == c 且 b == d,或是 a == d 且 b == c。在 0 <= i < j < dominoes.length 的前提下,找出满足 dominoes[i] 和 dominoes[j] 等价

2021-01-26 18:41:20 79

原创 Leetcode——989. 数组形式的整数加法

题目:对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。提示:1 <= A.length <= 100000 <= A[i] <= 90 <= K <= 10000如果 A.length > 1,那么 A[0] != 0示例 1:输入:A = [1,2,0,0], K = 34输出:[1

2021-01-22 17:28:46 110

原创 Leetcode——连接所有点的最小费用

题目描述给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] 。连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 :|xi - xj| + |yi - yj| ,其中 |val| 表示 val 的绝对值。请你返回将所有点连接的最小总费用。只有任意两点之间 有且仅有 一条简单路径时,才认为所有点都已连接。样例:题解这是我第一次接触“最小生成树”类的题目,所以也是借鉴了大神的代码。首先从权值和连通网可以看出此类为最

2021-01-19 18:57:04 280

原创 C++二维向量(vector)的输入与遍历

通常我们在vector中实现输入的操作为建立一个vector对象,然后使用.push_back()向其加入元素。我们举个例子来区别向量和数组。假如有一个二维向量组为accounts[a][b]和一个二维数组array[m][n],根据以往的经验,向数组中进行输入时可以使用循环输入的方式,即for(int i = 0;i < m;i++){ for(int j = 0;j < n;j++){ int x; cin>>x; array[i][j] = x; }}

2021-01-18 11:24:29 8067

原创 Leetcode——1232. 缀点成线

题目描述:在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上,是则返回 true,否则请返回 false。题解:由于本人未考虑除法的复杂性,所以用最直接的方法进行解题。首先判断点集中是否用两个点练成的线是与x轴平行的线,然后进行分类。第一类为点集中有与x轴平行的两点,然后进行依次判断其他的点是否满足与点集中任意其他一点的

2021-01-17 22:34:42 145

原创 JAVA学习——初学GUI

首先了解一下java中有哪些可以用来实现用户交互的1. 窗口Java提供的JFrame类的实例就是一个底层容器,即通常所讲的窗口JFrame()创建一个无标题的窗口,它的构造函数有当需要一个窗口时,可使用JFrame或其子类创建一个对象。需要注意的是,窗口默认被系统添加到显示器屏幕上,因此不允许将一个窗口添加到另一个容器中。举一个例子import javax.swing.*;import java.awt.*;class myJFrame extends JFrame{ m

2020-10-16 17:37:15 441

原创 冒泡排序及其升级版---fgriver

冒泡排序作为最基本最简单的排序算法,应用了基础的交换排序,代码如下void bubble_sort(int*arr,int n){ for(int i = 0;i<n;i++) for(int j = i+1;j<n;j++) { if(arr[j] > arr[i]) { int temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } }}如上,冒泡排序虽然简单,但是会浪费更多的时

2020-10-10 11:18:29 165

原创 插入排序总结---fgriver

插入算法的基本思想:将待排序表分为两部分,左侧为有序区,右侧为无序区。插叙算法的排序过程就是将右侧无序区的元素逐个插入到左侧有序区中,以此构成新的有序区。

2020-10-08 23:34:31 159

原创 快排总结00

基于六大基本排序的学习:快速排序废话不多说直接上代码void quick_sort(int left,int right,int* arr){ if(left >= right) return; int i = left; int j = right; int base = arr[left]; while(i < j) { while(arr[j] >= base && i < j) j--; while(arr[i] <

2020-10-07 20:52:19 96

原创 JAVA的访问权限控制符

访问权限类型:在JAVA中,类的访问权限包括了***public***和***无关键字***,其中public为公共访问,而无关键字为默认权限。而类成员的访问权限包括了pulic,protected,private和无关键字。与C++相比,JAVA中类成员的访问权限没有friend.这些访问权限控制符的区别在这里我给大家放一张图。这里我们可以将其形象化,加入A是C,D的父亲,B和C是A的同事,E是对他们来说的陌生人。然后我们可以看到相关的信息:对B来说:可以访问到A的public v1,可.

2020-10-07 20:00:44 161

原创 try-catch异常抛出与捕获

什么时候要考虑异常?所谓异常就是程序运行时可能出现的一些错误,比如试图打开一个根本不存在的文件,或者除法运算时除数为0,再或者根据实际的业务来判断是否会出现异常。这里是java的异常类的继承关系树:try-catch-finally结构 try { //包含可能发生异常的语句 call methodA() and maybe throw an exception; call methodB() and maybe throw an exce..

2020-10-07 09:50:08 9883

原创 JAVA的输入--fgriver

JAVA的输入由于java是完全面向对象的语言,所以所有的操作都要用“类”来实现。java的输入实际上是用的Scanner类来实现的。举一个例子:import java.util.Scanner;public class exchange {public static void main(String[] args) { Scanner reader = new Scanner(System.in); double t = reader.nextDouble();

2020-09-24 22:01:22 69

原创 队列的应用——打印杨辉三角前八行

数据结构目的和要求目的:学会队列的应用要求:自己声明并实现队列,利用自己编写的队列完成前8行杨辉三角的打印二、实验环境软件环境:Dev c++三、实验内容利用队列打印杨辉三角前八行四、实验过程用文字、图(流程图等)、表格等方式记录实验过程中分析、设计工作。首先声明和实现队列;回顾队列的运算:初始化、析构、判空、判满(考虑循环队列中的假满)、入队、出队、取队首元素。...

2020-03-22 20:50:04 2266

原创 指针与动态变量

(初学者,如果有错误希望大佬给予纠正,请轻喷,谢谢)我们知道指针可以定义出动态储存空间,例如:int *p = new int;int *q = new int;假设初始时,*p = 10;q = 20;那么现在的情况如图假设我们使p = *q(实际上就在操作这个间接空间)则现在的情况如下在这里只是改变了p指向的空间的值,而没有改变指针p所指向的对象。但如果是直接操作p与q...

2020-03-20 23:01:23 350

原创 栈的应用——编写简单计算器

数据结构实验报告一、实验目的和要求栈的应用实现简易计算器二、实验环境软件环境:Vs2017 + devc++硬件环境:①CPU:Intel(R)Core(TM)i7-8565U CPU@1.80Ghz ②内存:16.0GB 三、实验内容任务:利用栈编写十进制整数的简易计算器【只包括±*/()这五个符号】四、实验过程用文字、图(流程图等)、表格等方式记录实验过程...

2020-03-16 08:15:30 581

原创 栈的应用——编写简单计算器

如何用栈写出一个简单计算器数据结构实验报告日期:2020.3.15一、实验目的和要求栈的应用实现简易计算器二、实验环境软件环境:Vs2017硬件环境:①CPU:Intel(R)Core(TM)i7-8565U CPU@1.80Ghz ②内存:16.0GB 三、实验内容任务:利用栈编写十进制整数的简易计算器【只包括±*/()这五个符号】四、实验过程用文字、...

2020-03-16 08:06:08 456

空空如也

空空如也

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

TA关注的人

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