![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM
文章平均质量分 61
LoveLittleRain
这个作者很懒,什么都没留下…
展开
-
【动态规划】独一无二的路径
题目描述:有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。给定两个正整数int x,int y,请返回机器人的走法数目。保证x+y小于等于12。输入:2,2输出:2我的代码:import java.util.*;public class Robot { /** * 计算一原创 2016-05-29 20:09:17 · 451 阅读 · 0 评论 -
【矩阵】清除行列
题目描述:请编写一个算法,若N阶方阵中某个元素为0,则将其所在的行与列清零。给定一个N阶方阵int[][](C++中为vector>)mat和矩阵的阶数n,请返回完成操作后的int[][]方阵(C++中为vector>),保证n小于等于300,矩阵中的元素为int范围内输入示例:[[1,2,3],[0,1,2],[0,0,1]]输出示例:[[0,0,原创 2016-10-13 13:10:16 · 1074 阅读 · 0 评论 -
【动态规划】爬台阶
题目描述:You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?我的代码:public class原创 2016-05-29 20:14:15 · 843 阅读 · 0 评论 -
【动态规划】上楼梯
题目描述:有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶、3阶。请实现一个方法,计算小孩有多少种上楼的方式。为了防止溢出,请将结果Mod 1000000007给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100000输入:1输出:1分析:因为只能跳一步或者两步或者三步,那么用数组保存,跳到n阶的方法原创 2016-06-08 22:29:09 · 1185 阅读 · 0 评论 -
【动态规划】求二维矩阵的最大和子矩阵
题目描述:有一个正整数和负整数组成的NxN矩阵,请编写代码找出元素总和最大的子矩阵。请尝试使用一个高效算法。给定一个int矩阵mat和矩阵的阶数n,请返回元素总和最大的子矩阵的元素之和。保证元素绝对值小于等于100000,且矩阵阶数小于等于200。测试用例:[[1,2,-3],[3,4,-5],[-5,-6,-7]],3返回:10题目解析:原创 2016-05-30 21:06:14 · 9370 阅读 · 0 评论 -
【栈】写一个带有getMin功能的栈
题目描述: 实现一个特殊的栈,在实现栈的基本功能的基础上再实现返回栈中最小元素的功能要求: 1. pop, push,getMin 操作的时间复杂度都是O(1) 2. 设计的栈类型可以使用现成的栈结构我的代码:import java.util.Stack;/** * 含有getMin功能的栈,典型的以空间换时间 * @author原创 2016-10-29 14:58:18 · 379 阅读 · 0 评论 -
【华为机试】汽水瓶
题目描述:有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?原创 2016-10-07 21:31:44 · 328 阅读 · 1 评论 -
【栈】由两个栈组成队列
题目描述: 编写一个类,用两个栈实现队列,支持队列的基本操作(add,poll,peek)我的代码:public class Solution { Stack stack1 = new Stack(); Stack stack2 = new Stack(); //add操作 public void add(int node) {原创 2016-10-30 17:43:12 · 400 阅读 · 0 评论 -
【栈】仅用递归来实现栈逆序
【题目要求】 实现栈中元素的逆序,但是只能用递归来实现,不能用其他的数据结构【我的代码】 //获取栈的最底部的值,并把这个值从栈中移除 public static int getAndRemoveLastElement(Stack stack){ int result = stack.pop(); if(stack.isEmpty()){ r原创 2016-10-31 11:24:11 · 432 阅读 · 0 评论 -
【矩阵】矩阵顺时针旋转
题目描述:有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于500,图像元素小于等于256。输入用例:[[1,2,3],[4,5,6],[7,8,9]],3输出用例:[[7,原创 2016-10-13 12:59:21 · 722 阅读 · 0 评论 -
【栈】用一个栈来实现另一个栈的排序
【题目描述】 在一个栈中元素的类型为整型,现在想将该栈从栈顶到栈底按从大到小的顺序排序,只许申请一个栈,除此之外,可以申请其他变量,但是不能申请额外的数据结构,如何完成排序【我的代码】/** * 用一个栈实现另一个栈的排序 * @param stack */ public static void sortStackByStack(Stack stack){原创 2016-11-02 22:36:19 · 1243 阅读 · 0 评论 -
【动态规划】 最长递增子序列
题目描述:对于一个数字序列,请设计一个复杂度为O(nlogn)的算法,返回该序列的最长上升子序列的长度,这里的子序列定义为这样一个序列U1,U2...,其中Ui 给定一个数字序列A及序列的长度n,请返回最长上升子序列的长度。输入用例:[2,1,4,3,1,5,6],7输出用例:4我的代码: 第一种解法,时间复杂度是O(n^2)原创 2016-10-11 19:43:32 · 284 阅读 · 0 评论 -
【动态规划】放苹果
题目描述:把 M 个同样的苹果放在 N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?注意:5、1、1 和 1、5、1 是同一种分法,即顺序无关。输入描述:输入包含多组数据。每组数据包含两个正整数 m和n(1≤m, n≤20)。输出描述:对应每组数据,输出一个整数k,表示有k种不同的分法。原创 2016-05-29 20:55:02 · 1612 阅读 · 0 评论 -
【动态规划】minimum-path-sum
题目描述:Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.Note: You can only move either down or rig原创 2016-05-30 19:28:11 · 674 阅读 · 0 评论 -
【动态规划】罪犯转移
题目描述:C市现在要转移一批罪犯到D市,C市有n名罪犯,按照入狱时间有顺序,另外每个罪犯有一个罪行值,值越大罪越重。现在为了方便管理,市长决定转移入狱时间连续的c名犯人,同时要求转移犯人的罪行值之和不超过t,问有多少种选择的方式?输入描述:第一行数据三个整数:n,t,c(1≤n≤2e5,0≤t≤1e9,1≤c≤n),第二行按入狱时间给出每个犯人的罪行值ai(0≤ai≤1原创 2016-06-07 17:23:31 · 691 阅读 · 0 评论 -
【动态规划】股票交易日
题目描述:在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于2),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行)。给出一天中的股票变化序列,请写一个程序计算一天可以获得的最大收益。请采用实践复杂度低的方法实现。给定价格序列prices及它的长度n,请返回最大收益。保证长度小于等于500。测试用例:[10,22,5,75,65,80],6原创 2016-06-03 11:29:32 · 3651 阅读 · 3 评论 -
【字符串】字符串的全排列
题目描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。我的代码:import java.util.ArrayList;impor原创 2016-10-08 20:56:17 · 857 阅读 · 0 评论 -
【字符串】翻转单词顺序
题目描述:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?我的代原创 2016-10-09 19:44:20 · 547 阅读 · 0 评论 -
【位运算】求两个数的二进制有多少位不同
问题描述:世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?输入例子:1999 2299输出例子:7我的代码:/** * 求两个数的二进制中不同的位数 * @param m * @param n * @return 返回不同的位数的个数 */原创 2016-10-09 19:27:57 · 5170 阅读 · 1 评论 -
【链表】删除链表中的重复元素
题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5我的代码:/** * 删除链表中的重复元素 * @param pHead 原链表的头结点 * @return 返回删除重复元素之后的新的链表的头结点 */ public Lis原创 2016-10-10 10:34:54 · 2098 阅读 · 0 评论 -
【栈】猫狗队列
【题目描述】 给出宠物(Pet),猫(Cat)和狗(Dog)的类,实现一种猫狗队列,要求如下:用户可以调用add方法将cat类或者dog类的实例放入队列中用户可以调用pollAll方法将队列中所有的实例按照进队列的先后顺序依次弹出用户可以调用pollDog方法将队列中的dog类的实例按照进队列的先后顺序依次弹出用户可以调用pollCat方法将队列中的cat类的实例按照队列的先原创 2016-11-01 10:44:15 · 456 阅读 · 0 评论