
算法
balconyang
这个作者很懒,什么都没留下…
展开
-
Python求解一个字符串所有的子串算法
给定一个字符串,s = “abcdef",求出它的所有子字符串分析:先来分析此例中”abcdef"的长度为6。它的子字符串长度len(sub_s)可能为1,2,3…,5,6;然后再分析每种长度的字符串的个数,分别对应着6,5…,3,2,1;因此可以看出"abcdef"的子字符串的个数为:6+5+4+3+2+1 = 21思路:用算法解决的话,外层循环次数等于len(string)大小,...原创 2020-01-18 15:34:13 · 3302 阅读 · 0 评论 -
删除单链表中重复的结点
删除已排序链表中重复的元素,使得每个元素只出现一次例如输入:1 -> 2 -> 2 -> 3输出:1 ->2 -> 3算法思路:表中并没有说明带有头结点,设头指针L,首结点p(指针为L)遍历整个表,进入循环体:拿当前结点与后继结点进行对比,如果二者相同,直接删除这个后继结点,这样使得每个元素只出现一次;如果二者不相同,把当前指针p顺序后移;void ...原创 2019-07-14 00:57:06 · 866 阅读 · 0 评论 -
删除表中重复的元素 - leetcode算法题
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。例如输入[1,2,2,3],输出[1,2,3]题解:# 前后元素进行对比1.定义一个基准元素p,初始化赋值为表中的第一个元素。2.增加一个计数器k,初始化值为1,用于计算表中互不相同的元素个数。3.遍历整个表,依次把后面元素与基准元素p进行对比:例如把表中nums[1]和基准值p...原创 2019-07-11 14:51:38 · 536 阅读 · 0 评论 -
王道计算机&leetcode算法题
题目:删除顺序表中所有等于val的元素,返回顺序表新的长度算法思路1:反向思维法。可以用一个k记录不等于val的个数,把表中元素重新排序,最后k的个数就是表的长度,时间复杂度O(n),空间复杂度O(1)int removeElem(int *nums,int numsSize,int val){ //k记录不等于val的个数 int k=0; for (int i=0;i<num...原创 2019-07-11 10:22:52 · 543 阅读 · 0 评论 -
2018计算机研究生统考试题 - 数据结构综合题
算法思路:用一个指示数组B[ ] 来存放数组的正整数分布。开始时候,B[ ]中初始化值全部为0。现在遍历原始数组中全部元素,如果满足值在1-n之间,将B[A[i] -1]由0置1(下标和数值之间差1,B[ ]置1的元素对应当A[ ]完全正常时的元素,B[ ]中剩下为0的元素的下标就是缺少的那个最小正整数的下标,它的值 =下标 + 1;int Find_missing_min(int A[],...原创 2019-07-08 15:13:46 · 697 阅读 · 0 评论 -
2010计算机硕士统考试题赏析
题干:设将n(n>1)个整数放进一维数组R中。试设计一个时间和空间上都高效的算法。将R中保存的序列循环左移p(0<p<n)个位置,即将R中的数据由(x0,x1,x2,…xn-1) => (xp,xp+1,xp+2,xn-1…x0,x1…xp-1)(1)给出算法的基本设计思想;(2)根据算法思想,采用C或者C++或者Java语言描述算法,关键之处给出注释;(3) 说明...原创 2019-07-08 10:29:23 · 194 阅读 · 0 评论 -
2017计算机硕士统考选择题 - 求时间复杂度
题干:2017统考第一道选择题已知一段代码如下,分析它的时间复杂度:int func(int n){ int sum=0,i=0; while (sum<n) sum += ++i; return i;}**解析:代码块循环体内容 => i = i + 1,sum = sum + i.结果如下,0 = 0 + 13 = 1 + 26 = 3 + 310 = 6...原创 2019-07-04 09:10:14 · 2825 阅读 · 2 评论 -
2013计算机硕士统考试题分析 - 数据结构
题干思路解析:遍历数组元素,标记出一个可以成为主元素的元素Num,然后重新计数,确认Num是否是主元素算法分为两步:① 选取候选的主元素过程:依次遍历所给数组的每个整数,将第一个遇到的整数Num保存到c中,记录Num出现的次数为1,若下一次遇到的整数仍然为Num,则计数加1,否则减1;当计数减到0的时候,重新选取新的Num为c,并且重新开始计数,直到遍历完全部元素② 判断c的元素是否可以成...原创 2019-07-03 16:09:04 · 503 阅读 · 0 评论 -
2009计算机硕士统考试题分析 - 数据结构综合题
题干算法思路:这道题采用双指针法比较方便,因为只需要一次遍历就可解决。① 设置两个指针p和q,在一开始时同时指向首结点,然后使得p指针先移动k-1个结点,q指针此时不动,此时p和q距离k-1个结点。② 接着同时移动p指针和q指针,直到p指针指向尾结点,而此时p和q,距离为k-1。那么q指针指向的结点就是倒数第k个结点,访问这个结点data,算法完成。typedef int Element...原创 2019-07-02 16:39:46 · 169 阅读 · 0 评论 -
leetcode-cn算法题解答 - 349题
给定两个数组,编写一个函数来计算它们的交集。输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]代码实现class Solution: def intersection(): #use list(set(alist)) to get a single...原创 2019-06-26 15:47:10 · 210 阅读 · 0 评论 -
leetcode算法题 - #344
#344. 编写一个函数,其作用是将输入的列表或字符串反转过来,假设输入的数据类型是list.示例1输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]分析:之前看过别人用python解这道题,直接return s[::-1]可以用是可以用,但了解不到这里的算法的精髓,有点讨巧的意思。这题的使用算法思路来解:把列表的元素前后进行对称交换...原创 2019-06-19 16:20:07 · 109 阅读 · 0 评论 -
leetcode算法题(后续)
python算法实现#171.给定一个Excel表格中的列名称,返回其相应的列序号例如 A -> 1B -> 2C -> 3…Z -> 26AA -> 27AB -> 28输入: “AB”输出: 28再比如输入: “ZY”输出: 701以下是代码class Solution(): def titleToNumber...原创 2019-06-17 16:41:36 · 147 阅读 · 0 评论