![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
cag_are_god
哈哈哈
展开
-
剑指offer 扑克牌的顺子
题目:随机抽取扑克牌几张牌,判断能否组成顺子。其中大小王可以随便配。题目可以抽象为: 判断一个整形数组是否为连续数组,其中 0可以随便配。思路:将大小王抽象为0(当然其他数字也可以哦),先对数组排序,如果排序之后的数组不是连续的,即相邻的两个数字相隔若干个数字,但有足够的0可以补满空缺,那么数组实际上还是连续的。即判断,0的个数与空缺的个数是否相等。public class原创 2017-04-24 11:03:11 · 266 阅读 · 0 评论 -
剑指offer 循环左移
题目:字符串的左旋转操作室把字符串的前面的若干个字符转移到字符串的尾部。比如长度为n 左移k个思路:前k个翻转,后n-k个翻转,然后全部翻转。public class Solution { public static String RotateK(String str,int k) { if(str==null) return null; if(str.原创 2017-04-24 10:35:38 · 227 阅读 · 0 评论 -
剑指offer 翻转单词顺序
题目:输入一个英文句子,翻转句子中单词的顺序,单单词内字符的顺序不变。为简单起见,标点符号和字母一样处理。如输入“I am a student.”,输出为“student. a am I”。思路:现将句子中字符翻转,然后挨个翻转单词。public class Solution { public static String ReverseSentence(String str) {原创 2017-04-24 10:17:30 · 227 阅读 · 0 评论 -
剑指offer 和为s的连续正数序列
题目:输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。import java.util.ArrayList;public class Solution { public ArrayList > FindContinuousSequence(int sum) { ArrayList> list=new ArrayList>();原创 2017-04-23 14:46:17 · 320 阅读 · 0 评论 -
最大和连续子数组
问题描述:给定一个数组A[0,1…n-1],求A的连续子数组,使该数组和最大一. 暴力法 分析:首先初始化要求的最大值maxSum为A[0],然后定义三个索引i、j、k,然后三层循环:第一层i从0遍历到n-1,第二层j从i遍历到n-1,第三层k从i遍历到j,求出A[i]到A[j]之间的元素的和,然后和maxSum作比较并更新maxSum。复杂度:时间复杂度为O(n^3),空间复杂度O(转载 2017-05-14 19:18:04 · 450 阅读 · 0 评论 -
百度2017春招 度度熊回家
时间限制:1秒空间限制:32768K一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离? 输入描述:输入一个正整数N, N <= 50。接下来N个整数表示坐标,正数表示X原创 2017-05-11 21:45:34 · 364 阅读 · 0 评论 -
百度2017春招笔试 [编程题] 买帽子
时间限制:1秒空间限制:32768K度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 输入描述:首先输入一个正整数N(N 输出描述:如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1输入例子:1010 10 10 10 20 20 30 30 40 4原创 2017-05-11 20:22:14 · 388 阅读 · 0 评论 -
剑指offer 最大连续子数组之和
连续子数组的最大和在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向量的长度至少是1)利用动态规划:当以第i-1个数字结尾的子数组中所有原创 2017-04-18 20:46:18 · 259 阅读 · 0 评论 -
2017网易实习 [编程题] 调整队形
在幼儿园有n个小朋友排列为一个队伍,从左到右一个挨着一个编号为(0~n-1)。其中有一些是男生,有一些是女生,男生用'B'表示,女生用'G'表示。小朋友们都很顽皮,当一个男生挨着的是女生的时候就会发生矛盾。作为幼儿园的老师,你需要让男生挨着女生或者女生挨着男生的情况最少。你只能在原队形上进行调整,每次调整只能让相邻的两个小朋友交换位置,现在需要尽快完成队伍调整,你需要计算出最少需要调整多少次可以让翻译 2017-04-14 16:05:38 · 457 阅读 · 0 评论 -
剑指offer 最小的K个数
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。思路描述:通过快速排序思想,排完后,位于左边全是小于关键字,右边全是大于关键字,若将关键字的下标等于k-1,那么左边结果即是所求,需要注意的是,左边并不一定是排好序的。import java.util.List;import java.util.ArrayList;原创 2017-04-18 17:12:04 · 235 阅读 · 0 评论 -
剑指offer 数组中出现次数超过一半的数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。public class Solution { public int MoreThanHalfNum_Solution(int [] array) {原创 2017-04-18 16:26:16 · 171 阅读 · 0 评论 -
背包六问
Backpack IProblem 单次选择+最大体积Given n items with size Ai, an integer m denotes the size of a backpack. How full you can fill this backpack?NoticeYou can not divide any item into small pie转载 2017-04-13 21:15:14 · 264 阅读 · 0 评论 -
[网易编程题] 双核处理
问题描述:一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每个核1秒可以处理1kb,每个核同时只能处理一项任务。n个任务可以按照任意顺序放入CPU进行处理,现在需要设计一个方案让CPU处理完这批任务所需的时间最少,求这个最小的时间。 输入描述:输入包括两行:第一行为整数n(1 ≤ n ≤ 50)第二行为n个整数leng原创 2017-04-13 11:26:38 · 519 阅读 · 0 评论 -
01背包问题小结
经典的01背包问题描述为:n个物品,每个物品的重量为w[i],每个物品的价值为v[i]。现在有一个背包,它所能容纳的重量为W,问:当你面对这么多有价值的物品时,你的背包所能带走的最大价值是多少? 基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价翻译 2017-04-13 10:21:09 · 492 阅读 · 0 评论 -
冒泡排序及改良
冒泡排序算法,是最基本的排序算法, 它属于交换排序。冒泡排序过程设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气泡,根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上"漂浮"(交换位置),如此反复进行,直至最后任何两个气泡都是轻者在上,重者在下为止。性能分析若记录序列的初始状态为"正序",则冒泡排序过程只需进翻译 2017-03-29 20:23:26 · 273 阅读 · 0 评论 -
《算法导论》第12章 二叉查找树
摘要: 本章介绍了二叉查找树的概念及操作。主要内容包括二叉查找树的性质,如何在二叉查找树中查找最大值、最小值和给定的值,如何找出某一个元素的前驱和后继,如何在二叉查找树中进行插入和删除操作。在二叉查找树上执行这些基本操作的时间与树的高度成正比,一棵随机构造的二叉查找树的期望高度为O(lgn),从而基本动态集合的操作平均时间为θ(lgn)。1、二叉查找树 二叉查找树是按照转载 2016-04-28 19:36:52 · 438 阅读 · 0 评论 -
剑指Offer 字符串的排列
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba字符可能重复。import java.util.ArrayList;import java.util.List;import java.util.Set;import java.util.TreeSet;publi原创 2017-04-18 15:02:37 · 241 阅读 · 0 评论