算法
学习不止于前
这个作者很懒,什么都没留下…
展开
-
查找某组数中第几个大的数
问题描述:查找某组数中第几个大的数解题思路:1)采用先排序后查找的方式 2)利用快速排序,在排序过程中,进行筛选代码: public static int FindNumber(int [] arr,int left,int right,int num) { if (null == arr || arr.Length == 0...原创 2018-01-22 17:00:35 · 413 阅读 · 0 评论 -
动态规划-三角形
题目:给定一个指定的三角形的数字矩阵,如图所示: 2 3 4 6 5 7求从顶端到底部的最小距离。 public static int MinimunTotal(List<List<int>> triangle) { for(int i = tria...原创 2018-06-11 13:57:33 · 222 阅读 · 0 评论 -
动态规划-最大连续字数
给定一个数组,求最大连续的子数组解法1: 动态规划 public static int MaxSubArray(int[] nums) { int maxLocal = nums[0]; int global = nums[0]; for(int i = 1; i < nums.Length; i++)...翻译 2018-06-11 14:28:44 · 217 阅读 · 0 评论 -
动态规划-最大连续子序列积
给定一个数组,求取最大连续最大子序列积 public static int MaxProduct(int[] nums) { int maxLocal = nums[0]; int minLocal = nums[0]; int global = nums[0]; for (int i...翻译 2018-06-11 14:46:08 · 346 阅读 · 0 评论 -
动态规划-最大连续子数
给定一组数组求最大连续子数组,注:元素可以不相邻连续,例如:11,2,3,5,4 则结果为3(2,3,4)public static int MaxLengthOfArray1(int[] nums) { int global = 0; for(int i = 0; i < nums.Length; i++) ...原创 2018-06-11 15:15:58 · 195 阅读 · 0 评论 -
分治法-pow(x,n)
public static double myPow(double x,int n) { if (n < 0) return 1.0 / power(x, -n); else return power(x, n); } static double power (double x,int ...翻译 2018-06-07 15:08:45 · 276 阅读 · 0 评论 -
贪心法-Jump Game
给定一个数组,每个数组元素的值为最大的跳跃值,求是否能从数组0元素到数组最大的元素public static bool canJump2(int[] nums) { int[] f = new int[nums.Length]; for(int i = 1; i < nums.Length; i++) {...转载 2018-06-07 15:55:17 · 164 阅读 · 0 评论 -
贪心法-Jump Game II
给定一个数组,每个数组元素为跳转的最大值,求走完这个数组的最小步骤public static int Jump(int[] nums) { int step = 0; int left = 0; int right = 0; if (nums.Length == 1) return 0;...翻译 2018-06-07 16:11:01 · 146 阅读 · 0 评论 -
贪心法-Best Time to Buy and Sell Stock
public static int MaxProfit(int[] prices) { if (prices.Length < 2) return 0; int profit = 0; int cur_min = prices[0]; for(int i = 1; i < ...翻译 2018-06-08 15:25:54 · 178 阅读 · 0 评论 -
贪心法-最大不重复子串
public static int lengthOfLongstSubString(String s) { const int ASCII_MAX = 255; int[] last = new int[ASCII_MAX]; for (var i = 0; i < ASCII_MAX; i++) l...翻译 2018-06-08 16:48:14 · 266 阅读 · 0 评论 -
在二叉搜索树查找第k大的结点
给定一颗二叉搜索树,查找第k大的结点public static int KthSmallest(TreeNode root, int k) { Stack<TreeNode> s = new Stack<TreeNode>(); TreeNode p = root; while (s.C...翻译 2018-05-10 17:00:00 · 1518 阅读 · 0 评论 -
将排序的数组转换成二叉搜索树
给定一组递增的数,将其转换成BSTpublic static TreeNode SortedArrayToBST(int[] nums) { return SortedArrayToBST(nums, 0, nums.Length); } private static TreeNode SortedArrayToBST(in...翻译 2018-05-10 16:44:25 · 350 阅读 · 0 评论 -
二叉树Zigzag层次遍历
给定一个二叉树 返回Zigzag层次遍历的的值(例如:从左到右,然后从右到左,以此类推)如图: 3 / \ 9 1 / \ 1 3返回结果为:[ [3], [1,9], [1,3]]代码如下:public static List<List<int>> ZigzagLevelTreeTraversal(TreeNode root...翻译 2018-04-13 16:48:31 · 1579 阅读 · 0 评论 -
二分查找
问题:对于一组数进行二分查找的前提:该组数为有序数组实现二分查找代码:public static int BinarySearch(int [] arr,int x) { if(arr==null || arr.Length == 0) { return -1; } ...原创 2018-01-22 17:02:22 · 104 阅读 · 0 评论 -
判断某个是数是否是2的幂数
问题:判断某个数是否是2的幂数解决方案:1)可以进行暴力破解,时间复杂度较高 2)利用位运算,即:n&(n-1)==0 若满足则是2的幂数原创 2018-01-22 17:05:20 · 268 阅读 · 0 评论 -
统计一组二进制数中的含有1的个数
问题:统计一组二进制数中含有1的个数思路:利用位运算,当n&(n-1) 可以发现原二进制数中少了一位1,同时利用计数器进行累加即可。原创 2018-01-22 17:08:49 · 198 阅读 · 0 评论 -
Remove Duplicates from Sorted Array
Given a sorted array,remove the duplicates in place such that each element apperence only once and return the new length.Do not allocate extra space for another array,you must do this in place with co...翻译 2018-02-11 15:03:49 · 94 阅读 · 0 评论 -
remove duplicates from sort Array [2]
given sort arrays ,Follow up remove duplicates what if duplicates are allowed most at twicecode example 1 /// <summary> /// remove duplicates from sort arrays and duplicates are a...翻译 2018-02-11 15:25:19 · 100 阅读 · 0 评论 -
longest consencutive sequence
gaven an unsort array of integers, find the length of longest consencutive element sequece note: you algorithm should run in o(N) complexity.code example 1 /// <summary> /// given an ...翻译 2018-02-11 15:52:07 · 145 阅读 · 0 评论 -
twoSum
given an array of Integers ,find two numbers such that they add up to a specific target number.The function twoNum should return indices of the two numbers such that they add up to the targer, where i...原创 2018-02-11 16:29:20 · 112 阅读 · 0 评论 -
判定平衡二叉树
有一棵树,判断是否为平衡二叉树。平衡二叉树即为:左右子树的高度差不超过1代码: /// <summary> /// 若root为平衡二叉树,则返回二叉树的高度,否则返回-1 /// </summary> /// <param name="root"></param> /// <...翻译 2018-04-18 16:17:30 · 147 阅读 · 0 评论 -
FlattenTree
有一颗二叉树,将左子树的所有节点,转移到右子树上,如: 1 1 / \ \ 2 3 2 \ 3代码: /// <summary> /// 将root 中右子树->左子...翻译 2018-04-18 16:55:34 · 759 阅读 · 0 评论 -
贪心法-最大容积
有一个数组,每个数组的值假设为木板的高度,求这个最大能够装载的容积public static int MaxArea(int[] height) { int start = 0; int end = height.Length - 1; int result = int.MinValue; ...原创 2018-06-08 16:59:53 · 173 阅读 · 0 评论