在机器学习中,模型的训练是一个很重要的过程,它通常是对一个目标函数进行优化,从而获取模型的参数,比较常见的优化算法包括梯度下降法、牛顿法与拟牛顿法等。但在大数据的背景下,尤其对于并行实现来说,优化算法通常是越简单越好,如坐标下降法(CD)和随机梯度下降法(SCG)就比较受欢迎。本文是阅读完论文 Distributed Coordinate Descent Method for Learning with Big Data 的一则笔记,主要介绍算法 Hydra (一种分布式坐标下降法)的算法框架、收敛性理论、...
分类:
其他好文 时间:
2014-06-29 07:38:26
阅读次数:
350
【题目】
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
【题意】
给定一个已排序的数组(不存在重复元素),将它转换成一棵平衡二叉搜索树。
【思路】
由于平衡二叉树要求左右子树的高度差绝对值相遇等于1,也就是说左右子树尽可能包含相同数目节点。
则使用二分法来解本题即可。...
分类:
其他好文 时间:
2014-06-20 11:03:31
阅读次数:
246
【题目】
Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
【题意】
判断二叉树是否是平衡二叉树
【思路】
平衡二...
分类:
其他好文 时间:
2014-06-20 11:02:54
阅读次数:
173
以下各题均有时间复杂度为O(n*n)或以空间换取时间使得时间空间复杂度为O(n)的算法,在此均不考虑。
问题一、字符串移动
字符串为*号和26个字母的任意组合,把*号都移动到最左侧,把字母移到最右侧并保持相对顺序不变,要求时间和空间复杂度最小 。如“afdg**fa**hjfkdsl”变换成“****afdgfahjfkdsl”
此题前后字符串的长度...
分类:
其他好文 时间:
2014-06-20 10:49:56
阅读次数:
296
【题目】
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).
For example:
Given binary tree {3,9,20,#,#,15,7},
3
/ 9 20
/ 15 7
return its b...
分类:
其他好文 时间:
2014-06-20 09:42:30
阅读次数:
224
【题目】
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
【题意】
将一个有序链表转换成平衡二叉树
【思路】
思路跟Convert Sorted Array to Binary Search Tree完全一样...
分类:
其他好文 时间:
2014-06-07 16:20:05
阅读次数:
287
算法导论(Introduction to Algorithms )— 第二章 算法入门 — 2.1 插入排序,及习题拙见...
分类:
其他好文 时间:
2014-06-07 15:48:19
阅读次数:
237
6. 线性时间排序
6.1 计数排序
我们之前介绍的所有排序算法,都需要依次比较输入元素之间的大小,有些甚至需要重复比较多次,我们将这一列算法统称为比较排序。
接下来,我们将讨论三种以线性时间运行的排序算法,分别是计数排序、基数排序和桶排序,这些算法都用非比较的操作来确定排序的顺序。
计数排序,该算法的基本思路是,对于某一个元素,已知数组中比该元素小的元素的个数为,则可将该元素放置在的位置上。PS:当有相同元素时,此方案需要做一些特殊处理。...
分类:
其他好文 时间:
2014-06-07 12:23:07
阅读次数:
217
例如输入:I love programming
输出:I evol gnimmargorp
算法思路就是:根据空格提取每一个单词,存放在一个buffer里进行翻转处理,再添加到新的字符串。最后新的字符串就完成整个方法过程。
public class ReserveString {
public String reserve(String sentence){
Strin...
分类:
编程语言 时间:
2014-06-07 12:20:14
阅读次数:
246
最长回文字串,相信做过Palindrome Partitioning II 这个题的同学应该可以很快做出来。没错,这个题还可以使用动态规划方法得到一个时间复杂度为O(n^2)的解法,当然如果你想要更好的时间复杂度的算法也是有的。好的,我们先来看看时间复杂度为O(n^2)的算法。
代码实现--动态规划O(n^2)
相信如果你在网上看过了别人的算法,你会发现我的算法是最简洁的。哈哈,这个题需要注意的是如果你用惯了vector的话,你这里肯定会得到超时的提示...
...代码二--复杂度为O(n)的算法...
分类:
其他好文 时间:
2014-06-07 12:08:43
阅读次数:
224