算法
文章平均质量分 54
游客26024
小样,被哥迷住啦?
展开
-
找工作-体能修复8-编程-剑指offer-JZ3、JZ4、JZ5、JZ7、JZ8、JZ9、JZ10、JZ11、JZ12、JZ13、JZ14
说明: [0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[0,6],[0,7],[0,8],[0,9],[0,10],[0,11],[0,12],[0,13],[0,14],[0,15],[0,16],[0,17],[0,18],[0,19],[0,20],[0,21],[0,22],[0,23],[0,24],[0,25],[0,26],[0,27],[0,28] 这29种,后面的[0,29],[0,30]以及[0,31]等等是无法到达的。请找出数组中任意一个重复的数字。原创 2022-11-07 15:55:08 · 194 阅读 · 0 评论 -
体能修复7-编程-剑指offer-JZ35 复杂链表的复制
描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)。 下图是一个含有5个结点的复杂链表。图中实线箭头表示next指针,虚线箭头表示random指针。为简单起见,指向null的指针没有画出。示例 输入:{1,2,3,4,5,3,5,#,2,#} 输出:{1,2,3,4,5,3,5,#,2,#}原创 2022-04-29 16:02:38 · 1015 阅读 · 0 评论 -
体能修复6-编程-剑指offer-JZ22 链表中倒数最后k个结点
描述输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。结果原创 2022-04-28 15:53:03 · 522 阅读 · 0 评论 -
体能修复5-编程-剑指offer-JZ23 链表中环的入口结点
给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null (python None)。原创 2022-04-26 23:44:34 · 356 阅读 · 0 评论 -
体能修复4-编程-剑指offer-JZ52 两个链表的第一个公共结点
描述输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)数据范围: n<=1000要求:空间复杂度 O(1),时间复杂度 O(n)例如,输入{1,2,3},{4,5},{6,7}时,两个无环的单向链表的结构如下图所示:可以看到它们的第一个公共结点的结点值为6,所以返回结点值为6的结点。输入描述:输入分为是3段,第一段是第一个链表的非公共部分,第二段是第二个链表的非公共部分,第原创 2022-03-31 13:02:10 · 93 阅读 · 0 评论 -
体能修复3-编程-剑指offer-JZ25 合并两个排序的链表
描述输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围: 0\leq n\leq 1000 ,−1000≤节点值≤1000要求:空间复杂度 O(1),时间复杂度 O(n)。如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示:或输入{-1,2,4},{1,3,4}时,合并后的链表为{-1,1,2,3,4,4},所以对应的输出为{-1,1,2,3,4,4},原创 2022-03-30 15:34:49 · 563 阅读 · 0 评论 -
体能修复2-编程-剑指offer-JZ24 反转链表
描述给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。数据范围: 0≤n≤10000要求:空间复杂度 O(1) ,时间复杂度O(n) 。如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。以上转换过程如下图所示:示例1:输入:{1,2,3}输出:{3,2,1}示例2:输入:{}输出:{}说明:空链表则输出空 代码:# cl原创 2022-03-29 17:11:24 · 493 阅读 · 0 评论 -
体能修复1-编程-剑指offer-JZ6 从尾到头打印链表
知识点:链表描述:输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3}的链表如下图:返回一个数组为[3,2,1]0 <= 链表长度 <= 10000示例1:输入:{1,2,3}输出:[3,2,1]示例2:输入:{67,0,24,58}输出:[58,24,0,67]代码:# class ListNode:# def __init__(self, x):# self.val = x#原创 2022-03-29 12:38:03 · 362 阅读 · 0 评论 -
(貌似)蓝桥杯2016年的第一道题
(貌似)蓝桥杯2016年的第一题1.问题描述有一堆煤球,堆成三角菱形。具体: 第一层放1个, 第二层3个 第三层6个 第四层10个 … 如果一共有100层,共有多少个煤球2.问题解决方法一:s1=1*2*3/6=1 S2=2*3*4/6=4=1+3 S3=3*4*5/6=10=1+3+6 s4=4*5*6/6=20=1+3+6+10 s100=10原创 2018-01-28 21:16:23 · 347 阅读 · 0 评论 -
简单的算法问题1——塑泥课
简单的算法问题1——塑泥课以下题目全是用C++写的…以下算法题均来自计蒜客小米是一个幼儿园老师,每学期的泥塑课上,她都会给每个学生发不超过 250250 立方厘米的等量橡皮泥,教大家做泥塑。在上课过程中,她发现每个班都恰好有一个小朋友会去抢另一个小朋友的橡皮泥,于是她决定,在正式开始做泥塑前,让大家把手里的橡皮泥都捏成一个立方体,并且测量手里捏好的橡皮泥的长、宽和高。这样,她就可以知道谁被谁抢了橡皮原创 2017-06-05 22:15:59 · 626 阅读 · 1 评论 -
简单的算法问题2——奇怪的国家
简单的算法问题2——奇怪的国家以下题目全是用C++写的…以下算法题均来自计蒜客题目有一个奇怪的国家,里面的国民对于事情的态度永远只有两面。当两个人遇到一起讨论一个事情的时候——两个持赞同观点的人遇到一起后会对这个事情都继续赞同;一个持赞同观点的人遇到一个持不赞同观点的人的时候,两人都会不再继续赞同;两个持不赞同观点的人遇到一起讨论后反而会对这个事情开始赞同。输入格式输入包括两行,每行包括 N(1≤N原创 2017-06-06 15:35:41 · 454 阅读 · 1 评论 -
简单的算法问题3——元素移除
简单的算法问题3——元素移除以下题目全是用c++写的… 以下算法题均来自计蒜客题目给定一个数组和一个数(该数不一定在数组中),从数组里删掉这个数字,返回剩下的数组长度。 如:A[] = {1, 2, 3, 4, 5}A[]=1,2,3,4,5,要删除数字 3,那么返回数组长度为 4。 亲爱的小伙伴们,题目是不是很简单呢? 提示:int removeElement(int A[], int n原创 2017-06-07 21:33:22 · 443 阅读 · 1 评论 -
简单的算法问题4——移除数组中重复的元素
简单的算法问题4——移除数组中的重复元素题目以下代码全是用C++编写 以下算法均来自计蒜客 给定一个升序排列的数组,去掉重复的数,并输出新的数组的长度。 例如:数组 A={1,1,2},你的程序应该输出 2即新数组的长度, 新数组为{1,2}。要求:不能新开数组分配额外的空间,即常数空间限制。输入格式输入一个整数n(1≤n≤1000)。 接下来一行n个整数 A (-1000≤A ≤100原创 2017-06-08 21:09:58 · 584 阅读 · 2 评论 -
简单的算法问题5——整数转换为罗马字符
简单的算法问题5——整数转化为罗马字符以下算法均使用C++编写 以下题目均来自计蒜客题目给定一个整数 num,将整数转换成罗马数字。 如 1,2,3,4,51,2,3,4,5 对应的罗马数字分别为I,II,III,IV,V等,更详细的说明见此 链接链接。输入格式第一行输入一个整数num(1≤num≤3999)。输出格式输出num对应的罗马数字。形如: 输入 123输出 CXXIII刨坑点我原创 2017-06-11 18:25:49 · 544 阅读 · 2 评论 -
简单的算法问题6——罗马数字转换成整数
简单的算法问题6——罗马数字转换成整数此算法均是用C++编写 此算法题均是来自计蒜客 此题适合初学算法或者想了解编程但又只会一点点语法的人…题目给定一个罗马数字 s,将罗马数字转换成整数。 如罗马数字I,II,III,IV,V分别代表数字 1, 2, 3, 4, 5。 首先要来了解一下罗马数字表示法,基本字符有 7 个:I、V、X、L、C、D、M,分别表示 1、5、10、50、100、500原创 2017-06-13 13:19:27 · 2573 阅读 · 2 评论 -
简单的算法问题7——加一(高精度的算法)
简单的算法问题7——加一(高精度的算法)此算法均是用C++编写 此题目均是来自计蒜客这道题如果没有分析清楚有多种情况绝对吃藕!题目数组内存放了一些个位数字,组成一个大数(从高位到低位),现在将这个数加 11,并输出加一以后的结果。规则例如: A = [2,3,1,1,4] 则结果为 [2,3,1,1,5]。A = [7,8,9] 则结果为 [7,9,0]。输入格式第一行输入一个正整数 n(1原创 2017-06-22 16:13:04 · 726 阅读 · 1 评论 -
简单的算法问题8——单独的数字(位运算)
简单的算法问题8——单独的数字(位运算)此算法均是用C++编写 此题目均是来做计蒜客题目给定一个数组 A,除了一个数出现一次之外,其余数都出现三次。找出出现一次的数。规则如:{1,2,1,2,1,2,7},找出 7。你的算法只能是线性时间的复杂度,并且不能使用额外的空间哦~输入格式第一行输入一个数 n(1≤n≤500),代表数组的长度。接下来一行输入 n个 int 范围内(-2147483648…原创 2017-06-22 17:37:23 · 1011 阅读 · 1 评论 -
简单的算法问题9——爬楼梯(动态规划)
简单的算法问题9——爬楼梯 (动态规划)所有算法均是用C++编写 所有题目均是来自计蒜客题目假设你现在正在爬楼梯,楼梯有 nn 级。每次你只能爬 11 级或者 22 级,那么你有多少种方法爬到楼梯的顶部?输入格式第一行输入一个整数 n(1≤n≤50),代表楼梯的级数。输出格式输出爬到楼梯顶部的方法总数。形如: 样例输入 5样例输出 8刨坑点1.我最开始是用迭代去做的但是发现时间老是超时,测试原创 2017-06-23 12:11:11 · 4305 阅读 · 1 评论 -
有趣的算法问题10——最后一个单词的长度
有趣的算法问题10——最后一个单词的长度从今天开始简单的算法正式进入有趣的算法,激不激动?兴不兴奋? 所有算法均是用c++编写 所有题目均是来自计蒜客题目给定由大写,小写字母和空格组成的字符串,返回 最后 一个单词的长度。 如果输入中不存在单词,返回 0。 注意:“单词”是指不包含空格符号的字符串 例如: 对于字符串”hello World”(不带引号), 那么返回的结果是5; 对于字原创 2017-06-30 13:42:39 · 766 阅读 · 3 评论 -
有趣的算法问题11——X的平方根(二分查找法)
有趣的算法11——X的平方根(二分查找法)这个可能是我写的最气的博客,没有之一了,为什么气,大家往下面看就知道了…… 所有的算法均用C++编写 所有的题目均来自计蒜客 说的是二分法,结果也不一定就是用了二分法……题目设计函数int sqrt(int x),计算 x 的平方根。输入格式输入一个 整数 x,输出它的平方根。直到碰到文件结束符(EOF)为止。 //在windows平台EOF为ctr原创 2017-07-03 22:04:30 · 1156 阅读 · 2 评论 -
有趣的算法问题12——跳跃游戏1(贪心算法)
有趣的算法问题12——跳跃游戏1(贪心算法)所有算法均是用C++编写 所有题目均是来自计蒜客 ……我好想回炉重造。题目给定一个非负整数数组,假定你的初始位置为数组第一个下标。 数组中的每个元素代表你在那个位置能够跳跃的最大长度。 请确认你是否能够跳跃到数组的最后一个下标。 例如:A = [2,3,1,1,4] 能够跳跃到最后一个下标,输出true; A = [3,2,1,0,4] 不能跳原创 2017-07-04 12:21:04 · 3086 阅读 · 16 评论 -
有趣的算法问题13——(A+B)问题(位运算)
有趣的算法问题13——(A+B)问题(位运算)所有算法均是用C++编写 所有题目均是来自计蒜客 题目计算两个非负数A,B的和。不过这一次有些特殊,A,B可能会大。输入格式第一行输入一个非负整数A。 第二行输入一个非负整数B。 A,B的长度不大于500。输出格式输出A+B的值。不要有多余的前导零。形如:样例输入1231234样例输...原创 2018-08-07 22:15:49 · 589 阅读 · 0 评论 -
简单的算法问题14——排序后的数组删除重复数字
简单的算法问题14——排序后的数组删除重复数字所有算法均是用C++编写 所有题目均是来自计蒜客 题目给定升序排序的数组,如果数组有2个或者2个以上相同的数字,去掉他们,直到剩下2个为止。 例如:数组 A[]=[1,1,1,2,2,3] 你的算法需要返回新数组的长度5, 此时A为[1,1,2,2,3]。输入格式第一行输入一个不超过200的数字n,第二行输...原创 2018-08-10 16:21:18 · 374 阅读 · 0 评论 -
简单的算法问题15——最大子阵列
简单的算法问题15——最大子阵列所有算法均是用C++编写 所有题目均是来自计蒜客 题目在一个数组中找出和最大的连续几个数。(至少包含一个数)例如:数组A[] = [−2, 1, −3, 4, −1, 2, 1, −5, 4],则连续的子序列[4,−1,2,1]有最大的和6.输入格式第一行输入一个不超过1000的整数n。第二行输入n个整数A[i]。...原创 2018-08-10 16:30:57 · 464 阅读 · 0 评论 -
关于编程的话1
关于编程的屁话1C++MATLABC++经过一些编程训练后我发现使用for比使用函数的时间快,且可能内存不会过早的溢出使用do while与while(){} 比for的时间快MATLAB句柄计时比使用 tic;function;toc计时的时间快%对比sinfun1的执行时间 f(x)=sin(x/(100*pi))function y = sinfun1(M...原创 2019-03-14 17:27:52 · 327 阅读 · 0 评论