算法
文章平均质量分 50
断然Juvenile
挤进优秀圈使自己变强富足
展开
-
AcWing 797. 差分 插入法构造 差分数组 详解
题目描述输入一个长度为 n 的整数序列。接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数序列。接下来 m 行,每行包含三个整数 l,r,c,表示一个操作。输出格式共一行,包含 n 个整数,表示最终序列。数据范围1≤n,m≤100000,1≤l≤r≤n,−1000≤c≤1000,−1000≤整数序列中元素的值≤1000原创 2022-03-19 21:35:51 · 341 阅读 · 0 评论 -
北航 实验任务 5-3 hwjj 回消息
题目背景 hwjj 作为《大学计算机基础》的助教组长,每天在微信上向他请教问题的大一同学非常多,请你帮他记录一下他回消息的名单。题目描述:最开始时,hwjj 的微信是没有未读消息的。之后在每一个时刻,hwjj 的手机只 能处于以下三个状态的一种:接收消息,回复消息,或者什么都不做。这是由于 hwjj的手机太卡了,若某一时刻手机需要接收消息,则他就无法执行回复消息的操作;只要该时刻可以执行回复消息的操作且当前仍有未回复的消息,hwjj总会尝试挑选最新的消息来回复,在这一时刻回复完毕并把这个聊天框..原创 2021-04-23 10:06:59 · 380 阅读 · 0 评论 -
记录理解KMP算法(Next数组)的实践过程
还是因为考研需要,所以来学习KMP算法。简单介绍首先KMP算法是与暴力搜索算法相对应的,我想能看到这里来的,也不需要我多做介绍了。这里只说两点:KMP算法主串指针不回溯KMP最难理解的是Next数组这里主要记录对于Next数组的理解,以及其代码逻辑的实现逻辑。这里一些个人学习KMP的经验:别着急,慢慢看,在看别人的博客或者记录的时候,一定要搞定每个符号表达的意思如果对于KMP不够了解的朋友,可以看一下以下,这个视频:「天勤公开课」KMP算法易懂版对Next存在疑问的也可原创 2020-07-14 18:08:55 · 419 阅读 · 0 评论 -
带头结点的循环链表 解决 JosephCircle (约瑟夫环问题) By C
目标考研院校的常考试题,来写一写:使用一个带头节点的循环链表去解决且,此头结点不固定指向某一个节点,因为从题目中得,每删除一个节点,即从其下一个节点开始计数。故,这里是的头结点指向每一个被删除元素的下一个元素好像也没什么别的点。写就完事了,具体操作看代码注释。写的挺多的头文件的话,在前面几篇博客里可找到。#include "DataStructure.h"#include <iostream>typedef struct JosephCircle { int No; /.原创 2020-07-08 14:40:34 · 688 阅读 · 0 评论 -
合并两个非递减排列的线性表 By C
使用的数据结构:线性表非递减序列:123456555789非递增排列:655553221递增:123456递减:654321使用两种编程的方式,本质都一样的,具体可见 Data Structure - 基于realloc可自动扩展的顺序表 By C里面写到有关于,指针,地址,数组的关系。第一个方式,里面的insert方式,也可以换成数组直接写进去。第二个方式即纯指针操作void MergeList_Sq(Sqlist La, Sqlist Lb, Sqlist& L原创 2020-07-04 21:43:16 · 2280 阅读 · 0 评论 -
Leetcode 3. 无重复字符的最长子串 By Java 笨比的解法
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。要原创 2020-05-13 10:17:08 · 160 阅读 · 0 评论 -
Leetcode 206. 反转链表 By Java
206. 反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。/** * Definition for singly-linked list. * p原创 2020-05-12 18:49:38 · 275 阅读 · 0 评论 -
Leetcode 138. 复制带随机指针的链表 By Java -HashMap
给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的 深拷贝。我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示:val:一个表示 Node.val 的整数。random_index:随机指针指向的节点索引(范围从 0 到 n-1);如果不指向任何节点,则为 null 。示例 1:输入:head = [[7,null],[13,0],[11,4],[10,2],原创 2020-05-12 10:29:31 · 179 阅读 · 0 评论 -
Leetcode 61. 旋转链表 By Java 平铺直叙的解法
61. 旋转链表给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL示例 2:输入: 0->原创 2020-05-09 10:04:34 · 177 阅读 · 0 评论 -
Leecode 19.删除链表的倒数第N个节点 By Java
19. 删除链表的倒数第N个节点给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.代码写的太弱智,不想分析了,写点注释好了。大佬勿喷。/** * Definition for singly-linked list. * public class ListNode { * int val; *原创 2020-05-08 18:04:58 · 199 阅读 · 1 评论 -
Leetcode 2. 两数相加 By Java
2. 两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 ->...原创 2020-05-07 19:13:42 · 123 阅读 · 0 评论 -
LeetCode-289. 生命游戏
生命游戏根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:如果活细胞周围八个位置的活细胞数少于两个,则该位...原创 2020-04-02 11:57:04 · 120 阅读 · 0 评论 -
LeetCode-1111. 有效括号的嵌套深度
有效括号的嵌套深度有效括号字符串 定义:对于每个左括号,都能找到与之对应的右括号,反之亦然。详情参见题末「有效括号字符串」部分。嵌套深度 depth 定义:即有效括号字符串嵌套的层数。详情参见题末「嵌套深度」部分。给你一个「有效括号字符串」 seq,请你将其分成两个不相交的子序列 A 和 B,且 A 和 B 都满足有效括号字符串的定义(注意:A.length + B.length = seq...原创 2020-04-01 13:54:50 · 170 阅读 · 0 评论 -
蓝桥杯-基础训练-完美的代价
完美的代价问题的分析及思路思路一首先是如何判断其能不能成为回文串再进行回文处理pass,因为先去判断是否为回文数,就需要遍历字符串两层,太浪费了,一定更好的方法思路二这个思路是我自己在纸上手写的时候发现的首先当我判断为回文串的时候,是从将第一个字符与最后一个字符相比,即这样的对应关系,当两侧的字符一致时,再去判断第二位与倒数第二位,以此类推如果均相同,则为回文串故又根...原创 2020-03-28 16:16:48 · 205 阅读 · 0 评论 -
蓝桥杯-基础训练-芯片测试
芯片测试解题思路从测试结果矩阵,推导芯片好坏因为存在坏芯片测试结果的不确定性,故不可行从芯片好坏推导,测试矩阵我们可以假设一个可行解,即用其中好芯片的测试结果,去对比测试结果矩阵如果对应好芯片测试位结果一致,则证明,我们假设的可行解,是正确的这里只能通过我们,假设解中的,好芯片去判断,比对,坏芯片是不具有推断价值,因为其存在不确定性遇到的一些问题还有老毛病,...原创 2020-03-23 13:17:41 · 238 阅读 · 0 评论 -
蓝桥杯-基础训练-回形取数
回形数问题分析首先是观察其顺序,不难看出左上到左下 左下到右下 右下到右上 右上到左上既然这样,我们就按这个逻辑去输入就好了,为了简化问题,在实现中就将已经输出过的点,打上标记,不再输出,从而降低了实现时,对于边界条件把握的难度实践环节在手写的时候,发现输出格式的有关规定,特意就把输出封装为一个函数,对于格式进行统一处理既然,知道了顺序,就按照顺序去输入,通过观察实例...原创 2020-03-22 20:37:05 · 204 阅读 · 0 评论 -
蓝桥杯-基础训练-2n皇后问题
首先是对于问题的分析之前有看到过关于八皇后的问题,但是没有去研究过怎么去解决这个问题。这次遇到之后,也比较棘手首先对于这个问题,我先是画了一下图,不难发现,每当我们放置一个皇后的时候,都需要去做一定的判断,而这次,即需要判断对角线,还有该行与该列。个人初期观点也没发现什么好用的技巧,就打算穷举了即穷举所有情况,但是发现就是原始的穷举,没有很好的方法去存储你每一步的结果,也就没有...原创 2020-03-21 21:44:00 · 248 阅读 · 0 评论 -
二分查找 实现 LeetCode35 搜索插入位置 执行时间击败100%用户
递归方式:class Solution { public int searchInsert(int[] nums, int target) { if (target>nums[nums.length-1]){ return nums.length; }else if (target<=nums[0]){ ...原创 2019-10-25 14:29:40 · 139 阅读 · 0 评论 -
Leetcode1:两数之和【Java实现】 HashMap
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。上建模课,无聊。就打开了Leetcode。时间超过5%,空间超过90%。暴力解决。哈哈哈。菜的真实。以后写一道更一个。这道没啥理解,就先这样直接贴代码了。/** * -*- coding: utf...原创 2019-08-05 20:03:35 · 240 阅读 · 0 评论 -
【19年八月第一周】数学建模、智能算法、Leetcode
今天已经是八月第二周的周一了,周末总结都开始拖了。hhh。补上补上。1.数学建模学习了拟合、插值算法正式开始写建模论文了我忘了我都干啥了,emm。e,以后睡的时候,还是记录当天的工作叭。都忘光了。2.智能算法说到算法,真的是,感觉一遍汪洋大海,自己真的是太傻太幼稚,要学的东西太多了,以前都是执着于技术了,感觉算法这种奇妙的思维。真的很让人震撼,也同样引起了我对更好的学府、更广阔知...原创 2019-08-05 20:09:12 · 333 阅读 · 0 评论 -
Leetcode7:整数反转【c语言实现】
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。记一下自己的思路首先是...原创 2019-08-05 20:48:23 · 461 阅读 · 0 评论 -
【19年七月第四周】周末总结:Hexo博客、JavaWeb、数学建模、最小生成树(Prim算法)
这周总的来说,还算不错。最初几天都在搞JavaWeb方面的知识,每天看视频的同时,用到markdown写笔记,晚上用hexo+git提交到自己的博客。充实且开心。到了后面基本都是建模的琐事了,抽象的数学模型很让人烦恼。但好在一切仍在一步步向前迈进。1. 我用HEXO搭建的博客,欢迎大家访问,之后会增添评论留言功能的。链接:Chen is coding now教程的话网上很多,基本都...原创 2019-07-28 19:11:13 · 330 阅读 · 0 评论 -
Leetcode14:最长公共前缀【c语言实现】
写这个题的时候遇到了挺多的问题首先就是拿到这个题的时候就看不懂的函数的参数了就像是这样,char ** ????黑人问号,然后就去查资料补了一下知识漏洞。整理了一篇博客。各位有必要的话可以看一下。浅谈 Char、Char*、Char** 、Char a[]、Char *a[]接下来的问题就是思路的展开了,拿到这个题的时候,去搞明白了这个char** 的意思,emm其实也不是很明白,要...原创 2019-08-08 19:19:43 · 961 阅读 · 2 评论 -
Leetcode13:罗马数字转整数【c语言实现】
首先拿到这个题,第一感觉就是不想做了,好长啊。emm,算了,还是继续做叭。首先就是想起来char 不是单字符吗?怎么会存这么长,然后去度娘学习了解了一下 char、char*、char[]先简单记一下后面再单独写一下差异:char*s 是拿到这个字符串的第一个字符的首地址。有了这个char*的概念就好做了,既然是地址那就应该可以 *s++ 取下一位,我记得是这样的。就去写了如下的方...原创 2019-08-06 22:18:18 · 470 阅读 · 0 评论 -
LeetCode20:有效的括号 【c语言实现】
首先这个题的突破点,在于括号的ASCII码的转换,或者栈的应用。前者,我没考虑到,后者,我用到了。但是不得其精髓。本次的代码应该有四份的,我总共独自写了三次。第四次,我屈服了去评论区看别人的了。当然不是简单的做了四次。期间小问题也遇到不少。下面简述一下我的自闭之路吧。因为上个题的原因,我个人就一直在想着如何通过拿到这个题的反向解法,就是判断他什么时候为false,就可以直接return。...原创 2019-08-11 00:34:11 · 878 阅读 · 0 评论 -
LeetCode 26:从排序数组中删除重复项 【c语言实现】
从排序数组中删除重复项没啥说的了,做题还是先认真看题。我当时着急做了,忽略了题目的 原地删除的要求了,后面又想的复杂了。想着如去把后面的重复数组删掉。其实并不需要删,重复的数字并不是删了,而是放到后面去了。然后你返回一个前几位是你的处理结果。LeetCode就会根据你的返回的数去判断。你处理过后的结果,输出前几位。主要的思路就是,把第一个值当做比对值,从第二个值开始判断, 如果和比对值...原创 2019-08-11 16:54:29 · 351 阅读 · 0 评论 -
GA(遗传算法) 解决TSP问题 Python实现
TSP:Traveling Salesman ProblemGA:Genetic AlgorithmPython3.71. 第一问最小生成树问题使用了Prim算法基于Python3.7实现最小生成树(Prim算法)2. 即TSP问题、这里用到GA解决找了别人的GA板子,改动之后成型清华大学【数据挖掘:进化计算】进化算法 Evolutionary Algorithms (...原创 2019-08-03 19:49:40 · 5064 阅读 · 5 评论