算法和数据结构
phenix_alice
ict在读学生
微信:18519338366
展开
-
蚂蚁金服笔试题加试——字符串的全排列(python版)
目录写在前面题目描述常规解法常规解法的代码投机取巧版:万能的python库函数itertools.permutations写在前面春招实习的简历被蚂蚁金服的前辈捞起来了,有机会第二次笔试~感谢 考试时用java写的,再复习一遍加深印象第一个题是剑指offer原题,第三个是求两个排序数组的中位数。蛮幸运的哈哈 记录一哈题目描述(牛客题目传送门)输入一个字符串,按字典序打印出该字符串中字符...原创 2020-04-27 22:55:01 · 860 阅读 · 0 评论 -
每k个一组反转链表-python版
题目:传送门给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。说明:你需要自行定义链表结构,将输入的数据保存到你的链表中;你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换;你的算法只能使用常数的额外空间。输入描述:第一行输入是链表的值第二行输入是K...原创 2020-04-23 10:22:20 · 544 阅读 · 0 评论 -
二叉树重建(根据前序中序)
题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。题目传送门注意点递归的时候不仅要传入前序的start_idx、end_idx,还要传入中序遍历的start_idx,end_index代码class...原创 2020-04-20 09:56:24 · 257 阅读 · 0 评论 -
腾讯三面算法题-逛街(单调栈)
原题链接小Q在周末的时候和他的小伙伴来到大城市逛街,一条步行街上有很多高楼,共有n座高楼排成一行。小Q从第一栋一直走到了最后一栋,小Q从来都没有见到这么多的楼,所以他想知道他在每栋楼的位置处能看到多少栋楼呢?(当前面的楼的高度大于等于后面的楼时,后面的楼将被挡住)解法:用单调栈package com.company;import java.util.Scanner;import jav...原创 2020-04-07 09:33:21 · 1979 阅读 · 1 评论 -
【算法】对比归并和快排的执行效率(1w~10w数据量的数组)
简介测试从1w~10w数据量下,归并和快排各自的执行效率以及平均执行效率。结论快排不稳定,但是平均下来比归并快。代码package main.java.test;import java.util.Arrays;/** * @author 12556 * */public class MergeSort { /** * 生成指定大小的随机数数组 * @param ...原创 2018-10-23 11:15:58 · 1504 阅读 · 0 评论 -
【算法】快速排序算法的java实现
快排的核心代码(递归): private static void quickSort(int[] a, int i, int j) {if (i < j) { int mid = partition(a,i,j); quickSort(a, i, mid-1); quickSort(a, mid+1, j); } }partition函数 /** ...原创 2018-10-23 11:04:14 · 439 阅读 · 0 评论 -
【算法】归并排序算法的java实现
归并排序的核心代码: private static void mergeSort(int[] a, int i, int j) { if (i &amp;lt; j) { int mid = (i+j)/2;//这里取中位数,不能是(j-i+1)/2 mergeSort(a, i, mid); mergeSort(a, mid+1, j); merge(a,i,mid,j...原创 2018-10-23 10:21:43 · 210 阅读 · 0 评论 -
已知前序(先序)与中序输出后序
已知前序(先序)与中序输出后序: 前序:1, 2, 3, 4, 5, 6(根左右) 中序:3, 2, 4, 1, 6, 5(左根右)分析:因为前序(根左右)最先出现的总是根结点,所以令root为前序中当前的根结点下标(并且同时把一棵树分为左子树和右子树)。start为当前需要打印的子树在中序中的最左边的下标,end为当前需要打印的子树在中序中最右边的下标。递归打印这棵树的后序,递归出口转载 2017-08-16 21:04:38 · 858 阅读 · 0 评论 -
树的遍历——已知后序与中序输出前序(先序)
已知后序与中序输出前序(先序): 后序:3, 4, 2, 6, 5, 1(左右根) 中序:3, 2, 4, 1, 6, 5(左根右)分析:因为后序的最后一个总是根结点,令i在中序中找到该根结点,则i把中序分为两部分,左边是左子树,右边是右子树。因为是输出先序(根左右),所以先打印出当前根结点,然后打印左子树,再打印右子树。左子树在后序中的根结点为root – (end – i + 1)转载 2017-08-16 21:02:24 · 429 阅读 · 0 评论 -
fzu-oj 2236 第十四个目标-树状数组
链接:http://acm.fzu.edu.cn/problem.php?pid=2236Problem Description目暮警官、妃英里、阿笠博士等人接连遭到不明身份之人的暗算,柯南追踪伤害阿笠博士的凶手,根据几起案件现场留下的线索发现凶手按照扑克牌的顺序行凶。在经过一系列的推理后,柯南发现受害者的名字均包含扑克牌的数值,且扑克牌的大小是严格递增的,此外遇害者与毛利小五郎有关。为了避免下一个原创 2017-07-18 23:15:15 · 299 阅读 · 0 评论 -
九度OJ-题目1167-数组排序-结构体数组排序
九度OJ-题目1167:数组排序原题链接:http://ac.jobdu.com/problem.php?pid=1167题目描述:输入一个数组的值,求出各个值从小到大排序后的次序。输入:输入有多组数据。 每组输入的第一个数为数组的长度n(1<=n<=10000),后面的数为数组中的值,以空格分割。输出:各输入的值按从小到大排列的次序(最后一个数字后面没有空格)。样例输入:4 -3 75 12 -3样例输原创 2017-06-29 18:31:39 · 564 阅读 · 0 评论 -
数据结构(严蔚敏)图论章节知识点汇总
[总图] (http://img.blog.csdn.net/20170611160435349?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGl5aW5xaWFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)原创 2017-06-11 16:06:51 · 844 阅读 · 0 评论 -
九度OJ-题目1447-最短路径-floyd-dijisitra
题目:http://ac.jobdu.com/problem.php?pid=1447 欢迎指正和讨论!题目描述:在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?输入:输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=1原创 2017-06-27 22:48:20 · 617 阅读 · 0 评论 -
九度OJ-题目1163:素数
链接:http://ac.jobdu.com/problem.php?pid=1163题目描述:输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。输入:输入有多组数据。 每组一行,输入n。输出:输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出原创 2017-06-29 18:36:51 · 466 阅读 · 0 评论