Fork me on GitHub
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路分析 由于是有序链表,要删除重复节点,,我们可以先设置三个指针,pre,p,next,分别指向前一个节点,当前节点,和下一个结点,遍历链表,判断当前节点和下一个结点是... 阅读全文
posted @ 2019-08-07 12:20 这个世界~ 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。思路分析要考虑到大数问题,我们要求的n位数是否的整数,这里明显没有限制n的大小,我们可以用字符串来打印n位数我们需要做两件事情:在字符串表达的数字上模拟+1 ,对字符串进行加一操作,注意停止加一的时机,即当最高位+1时,如果产生进位,则停... 阅读全文
posted @ 2019-08-06 12:52 这个世界~ 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 思路分析要考虑到指数为负数的情况,而且指数为负数的时 base不能为0,因为指数为负数时,是指数的绝对值次幂的倒数,(分母不能为0),考虑到这些情况之后,就可以转化为求expon... 阅读全文
posted @ 2019-08-06 12:38 这个世界~ 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析Java代码代码链接题目描述 给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例给定 nums = [2, 7, 11, 15], target = 9 ,因为 nums[0] + nums[1] = 2 + 7 = 9 , 所... 阅读全文
posted @ 2019-08-05 23:54 这个世界~ 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路分析让整数和1相与,可以判断整数二进制表示中最右边一位是否为1,将1左移之后再和整数相与,可以比较右数第二位,循环比较,就可以统计出二进制中1的个数(可能一般想到的是将整数右移,之后再和1相与,但是这种方法传入负数时会陷入死循环,因为负数的右移操作会在高位补1,而不是0)一个... 阅读全文
posted @ 2019-08-05 23:21 这个世界~ 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 给你一根长度为n绳子,请把绳子剪成m段(m、n都是整数,n>1并且m≥1)。每段的绳子的长度记为k[0]、k[1]、……、k[m]。k[0]* k[1]*…*k[m]可能的最大乘积是多少?例如当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到最大的乘积18。思路分析动态规划: 定义函数f(n) 为将长度为n的绳子剪成若干段后... 阅读全文
posted @ 2019-08-05 21:31 这个世界~ 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析Java代码代码链接题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?思路分析... 阅读全文
posted @ 2019-08-05 17:37 这个世界~ 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析Java代码代码链接题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 \[ \begin{matrix}a & b & t &g \\c & f & c & s\\j & d & ... 阅读全文
posted @ 2019-08-05 15:47 这个世界~ 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析Java代码代码链接题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路分析利用二叉查找的思路,由于是旋转数组,可以分成两个排序的子数组,而且最小... 阅读全文
posted @ 2019-08-05 12:21 这个世界~ 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析Java代码代码链接题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。思路分析递归的思路,会出现很多重复的操作,效率低下;可以从下往上计算,首先根据f(0)和f(1)计算出f(2),再根据f(1)和f(2)计算出f(3),一次类推,可以计算出第n项。算法的时间复杂度为O(n);Java代码public class O... 阅读全文
posted @ 2019-08-05 02:34 这个世界~ 阅读(131) 评论(0) 推荐(0) 编辑