随笔分类 -  算法题目总结

摘要:问题描述:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。 阅读全文
posted @ 2017-10-12 16:44 toov5 阅读(182) 评论(0) 推荐(0)
摘要:问题描述:实现函数double power(double base,int exponent),求base的exponent次方。不能使用库函数,同时不需要考虑大数问题。 阅读全文
posted @ 2017-10-12 16:07 toov5 阅读(168) 评论(0) 推荐(0)
摘要:问题描述: 请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1 因此如果输入9,该函数输出2; https://blog.csdn.net/caihongtangren/article/details/90438938 阅读全文
posted @ 2017-10-12 15:59 toov5 阅读(181) 评论(0) 推荐(0)
摘要:package Problem9; public class Fibonacci { /* * 题目描述: 写一个函数,输入n,求斐波那契数列的第n项,斐波那契数列的定义如下: n=0,f(n)=0 n=1,f(n)=1 * n>1;f(n)=f(n-1)+f(n-2) */ /** * @param args */ ... 阅读全文
posted @ 2017-10-12 15:50 toov5 阅读(144) 评论(0) 推荐(0)
摘要:思路 数组在一定程度上是排序的,很容易分析出:可以采用二分法来寻找最小数字。 但是这里面有一些陷阱: 1.递增排序数组的本身是自己的旋转,则最小数字是第一个数字 2.中间数字与首尾数字大小相等,如{1,0,1,1,1,1}和{1,1,1,1,0,1},无法采用二分法,只能顺序查找。 测试用例 1.功 阅读全文
posted @ 2017-10-12 10:28 toov5 阅读(134) 评论(0) 推荐(0)
摘要:package Problem5; import java.util.Stack; //首先定义链表结构class LinkNode{ LinkNode next; int node_value;} public class PrintListReverse { public void revers 阅读全文
posted @ 2017-10-12 10:05 toov5 阅读(107) 评论(0) 推荐(0)
摘要:package Problem4; public class ReplaceBank { /* * 题目描述: 请实现一个函数,将字符串的每个空格替换为"%20"。 * 例如输入"We are happy",则输出"We%20are%20happy."。 */ /** * @param args * 阅读全文
posted @ 2017-10-12 09:51 toov5 阅读(129) 评论(0) 推荐(0)
摘要:package Problem3; public class Find { /* * 题目描述:二维数组中的查找 * 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下的顺序排序。 * 完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否包含该整数 * */ pub 阅读全文
posted @ 2017-10-12 09:50 toov5 阅读(125) 评论(0) 推荐(0)
摘要:package TT; public class Test206 { public static void shellSort(int[] data){ int h=1; while(h0){ for(int i =h; i=0 && tmp<data[j]){ data[j+h]=data[j]; j-=h; } data[j+... 阅读全文
posted @ 2017-09-27 16:55 toov5 阅读(143) 评论(0) 推荐(0)
摘要:package TT; public class Test206 { public static void InsertSrot(int[] arr){ int i,j; int target; for(i=1;i0 && target<arr[j-1]){ arr[j]=arr[j-1]; j--; } arr[j]=target; ... 阅读全文
posted @ 2017-09-27 16:31 toov5 阅读(128) 评论(0) 推荐(0)
摘要:用一个索引位置上的元素,一次与其他索引位置上的元素比较 然后进行交换 小的放前面就好了 两层for循环 第一层 锁定一个值 拿到第二层去从他的前面的 比较 走一遍 然后一直这么玩儿下去 阅读全文
posted @ 2017-09-27 16:16 toov5 阅读(148) 评论(0) 推荐(0)
摘要:外层循环决定几次 内层循环比较几次 五个数比较四次就OK了 arr.length-1 此 外循环的 数组是引用传递哦哦哦哦嘎嘎 阅读全文
posted @ 2017-09-27 16:08 toov5 阅读(158) 评论(0) 推荐(0)
摘要:给定一个数组arr,返回arr最长递增子序列 要求 如果长度为N 请实现时间复杂度为O(N logN)的方法 动态规划解题思路: 1 生成长度为N的数组dp, dp[i]表示在以arr[i]这个数结尾的情况下,arr[0....i]中的最大递增子序列长度 2 对第一个数arr[0]来说,令dp[0] 阅读全文
posted @ 2017-09-20 20:14 toov5 阅读(323) 评论(0) 推荐(0)
摘要:给定一个矩阵m,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,返回所有路径和中最小的路径和 非常明显的动态规划题目,一目了然 阅读全文
posted @ 2017-09-20 16:34 toov5 阅读(892) 评论(0) 推荐(0)
摘要:给定一颗二叉树的头节点head和一个32位整数sum,二叉树节点值类型为整型,求累加和胃sum的最长路径长度。 这个问题 参考之前 “求未排序数组中累加和为规定值的最长子数组长度” 阅读全文
posted @ 2017-09-18 16:50 toov5 阅读(698) 评论(0) 推荐(0)
摘要:二叉树被记录成文件的过程叫做二叉树的序列号。通过文件内容重建原来二叉树的过程叫做二叉树的反序列号。 给定一个二叉树头节点head,并已知二叉树节点值的类型为32位整型。设计一种二叉树序列化,和反序列化方案,并且代码实现。 方法一,先序遍历下的序列化过程,首先假设徐立华的结果字符串为str,初始str 阅读全文
posted @ 2017-09-18 10:33 toov5 阅读(1574) 评论(0) 推荐(0)
摘要:给定数组arr和整数num,共返回有多少个子数组满足 <= num 数组长度N 时间复杂度O(N) 阅读全文
posted @ 2017-09-13 16:05 toov5 阅读(387) 评论(0) 推荐(0)
摘要:一个数组的MaxTree定义如下: 数组必须没有重复元素 MaxTree是一颗二叉树,数组的每一个值对应一个二叉树的节点 包括MaxTre树在内且在其中的每一颗子树上,值最大的节点都是树的头 给定一个 没有重复元素的数组arr,写出生成这个数组的MaxTree的函数,要求如果数组长度为N, 时间复杂 阅读全文
posted @ 2017-09-13 14:10 toov5 阅读(229) 评论(0) 推荐(0)
摘要:有一个整型数组arr 和一个 大小为w的窗口从数组的最左边滑倒最右边,窗口每次向右边滑动一个位置 如果数组长度为n, 窗口大小为w, 则一共产生 n-w+1 个窗口的最大值 请实现一个函数: 输入 整型数组 arr, 窗口大小 w 输出 一个长度为 n-w+1 的数组res res[i] 表示每一种 阅读全文
posted @ 2017-09-13 10:40 toov5 阅读(211) 评论(0) 推荐(0)
摘要:用一个栈实现另一个栈的排序 一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序。只允许申请一个栈。除此之外可以申请新的变量,但不能申请额外数据结构 思路: 将要排序的栈记为 stack, 申请的数组栈记为help。 stack上执行pop操作, 弹出的元素记为cur 如果cur <= 阅读全文
posted @ 2017-09-12 19:51 toov5 阅读(256) 评论(0) 推荐(0)