- 博客(14)
- 收藏
- 关注
原创 leetcode刷题笔记75---颜色分类
题目要求:算法分析:本题是荷兰国旗问题。我的思路最开始也是双指针,只不过是比较指针所指向值的大小再进行变化。即循环判断条件为nums[i]和nums[j]的大小再做出相应的判断,但是这种方法在测试的过程中[2,0,1]这个数组没有通过,而且要求判断的条件为nums[i]==nums[j]时还需要附加判断条件:值为0,1还是2.较为繁琐,由于条件的控制不能完全涵盖每一种情况因此不能采用这种比较指针所指向值的大小再进行变化。————————————————————————————————————在变
2021-03-27 12:22:47
178
原创 leetcode刷题笔记---leetbook数组类算法之做好初始定义(java实现)
今天看了一些刷题笔记和大神的刷题方法,决定按照分类来刷题,第一个内容就是数组,leetcode上共有342个数组题目,有挑选性地刷一段时间,循序渐进吧。以下小题均为leetbook中数组类算法的全部题目,以此为我这段时间数组训练的开端叭!leetbook数组类算法:1.移动零解题思想:将所有0移动到数组末尾,也就是把不为0的数依次移动到前面来,最后将空余出来的位置赋值为0.需要两个计数器,第一个计数器用来记录0的个数,第二个计数器用来记录非0的个数,在一次循环遍历中如果当前值为0,记录0的计数
2021-03-21 17:56:05
269
1
原创 leetcode刷题笔记4---寻找两个正序数组的中位数(Java实现)
题目要求:算法分析:这个题目实现起来较为简单,首先把两个数组合并成一个数组,再对这个新的数组排序(题目中给的正序感觉可能会有更节省时间的数据结构,我在此处并没有考虑),排序结束后直接按下标取数。要注意的是新数组的元素个数奇偶情况不同计算式也不同,直接if判断即可。在第一次编码中,我在合并数组时没有写for循环,而是用了一个函数System.arraycopy(),执行结果是正确的,但是提交后就报错,目前对这个报错不明觉厉。修改成经典for循环后就正确了。源代码:最开始运行失败的代码:class
2021-03-20 15:20:03
177
原创 leetcode刷题笔记3---无重复字符的最长字串(Java实现)
题目要求:算法分析:本题采用“滑动窗口法”。源代码:class Solution { public int lengthOfLongestSubstring(String s) { int num=0, nummax=0, n=0; //分别存放本次最大字符串长度,所有最大字符串长度,子串开始位置 Set<String> setting = new HashSet<String>(); //一个集合存放子串
2021-03-19 21:26:07
165
原创 ccf练习之稀疏向量(c++实现)
题目要求:算法分析:首先要明白本题目的要求,可以先从给出的输入输出示例中看,也就是输入两个稀疏向量(线性代数中讲过的),每一个向量的维数自己来定,也就是第一行第一个数字的输入,第二个数字是第一个稀疏向量“不稀疏”的位置和值,第三个数字是第二个稀疏向量“不稀疏”的位置和值。其次进行分析,如果采用数组,由于是稀疏向量所以会造成大量的空间浪费,所以我们采用c++中的一个容器:unordered_map。这个容器最大的优势是里面的键值对是无序的,容器底层采用的是哈希表存储结构,这一点不同于普通数组的按顺序存
2021-03-19 16:34:46
685
1
原创 CCF试题------期末预测之最佳阈值的C++代码
这个题目我自己写的代码如下,但是运行错误,希望大家可以帮忙找错,之后有时间回来继续调试修改。#include <iostream>#include <set>#include <algorithm>using namespace std;int main(){ int num; cin>>num; //一共要几组数据 int y[num], result[num]; //定义数组,这些数组的大小都是num int i=0; i.
2021-02-17 11:29:57
244
原创 python实现成语背诵小软件
问题描述:这是一个帮助背诵成语的小程序。要求用户自己建立属于自己的成语库,并且可以自行查看成语库并且对其进行增加,删除,查询,修改库内成语。选择开始游戏进入游戏界面,随机抽取成语并且随机隐去成语中的两个汉字,用户要根据显示字猜隐去字,猜对了给出鼓励语句,猜错了由用户自行选择退出游戏或者继续猜词。编程过程:(1) 建立成语库,并可以方便地对成语库进行增加、删除。(2) 随机读取一个成语。(3) 随机隐去成语中的两个汉字,规则是:四字成语前2个汉字随机隐去1个,后2个汉字随机隐去1个。用随机数方式确定
2021-02-13 14:18:15
597
4
原创 CCF试题---期末预测之安全指数的C++代码
样例1输入62 6010 1000 700 0-10 5010 60样例1输出1220样例1解释y=ReLU(1220)=1220样例2输入2-10 100-1 15样例2输出0样例2解释y=ReLU(-1015)=0此题目较为简单,直接根据公式计算即可,只需要用到一个循环,时间空间均满足题目要求。源代码如下:#include <iostream>using namespace std;int main(){ double ret; .
2021-02-13 14:03:07
239
原创 CCF试题---- 称检测点查询的C++代码
试题编号: 202009-1试题名称: 称检测点查询时间限制: 1.0s内存限制: 256.0MB题目背景2020 年 6 月 8 日,国务院联防联控机制发布《关于加快推进新冠病毒核酸检测的实施意见》,提出对“密切接触者”等八类重点人群“应检尽检”,其他人群“愿检尽检”。问题描述某市设有 n 个核酸检测点,编号从 1 到 n,其中 i 号检测点的位置可以表示为一个平面整数坐标(xi, yi)。为方便预约核酸检测,请根据市民所在位置(x, y) ,查询距其最近的三个检测点。多个检测点距离相同
2021-02-11 14:49:58
366
原创 单链表经典算法与时间复杂度分析
设计算法以删除链表中值为x的结点``【算法描述】:删除给定值的结点关键是寻找此结点和最终的释放内存。查找此结点需要一个循环,定义的指针p指向头结点因为不是双链表所以p每次的指向必须为直接前驱,循环控制条件是如果p的直接后继不是我们要找的值并且p不是最后一个结点,循环就可以继续,对应的跳出循环有两种情况,第一种是找到了,删除释放内存,没找到就返回false主函数里给用户提示信息。【算法实现】:...
2020-04-13 18:03:25
7322
1
原创 Java多线程实例
众所周知,多线程是Java语言最重要的特性之一。一个程序在其执行过程中,可以产生多个线程,形成多条执行线索。每条线程,有产生、存在和消亡的过程。程序中多个线程,按照自己的执行路线并发工作,独立完成各自的功能,互不干扰。多线程的执行也是以划分CPU时间片为主要方式的,每个线程会再执行期间被分到单独的一个时间片,在此期间其他的应用程序休眠等待,可以说多线程极大地提高了程序运行的效率,是java开发大型...
2020-04-13 17:58:44
145
原创 Java实现鼠标点击画圆和方块
JAVA GUI简单应用,鼠标事件处理,单击左键画圆,单击右键画方,双击左键清屏,多话不说,代码如下:在这里插入代码片package Draw;package Draw;//引入工具类(1)画图类,(2)窗体类import java.awt.Graphics;import javax.swing.JFrame;//定义PaintFrame类继承JFramepublic class ...
2020-03-28 12:06:41
1770
2
原创 计算两个正整数的最大公约数,返回的是最大公约数;若输入的数据有任意一个不满足条件,返回值是-1
#include<stdio.h>int MaxCommonFactor(int a, int b){ int t, r;//t为容器,r为余数 if(a <=0 || b <= 0) { return -1; } else { if(a < b) { ...
2019-12-20 18:13:39
1780
原创 C语言编写字符串连接函数
初学C,便写了一段字符串连接函数发表玩玩,希望看到地人儿可以有所帮助呦!#include<stdio.h>int main(){ void MyStrcat(char *dstStr, char *srcStr); char str1[80], str2[40], *p, *q; printf("Input a string:"); gets(s...
2019-12-14 15:25:24
3524
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人