著有《机器学习实践应用》,阿里云机器学习PAI产品经理,个人微信公众号“凡人机器学习”。
1.时间复杂度O(N),内存O(1)的效率下实现单链表的翻转 public static TreeNode revers(TreeNode head){ TreeNode temp,first,second; first=head; second=head.next; while(second!=null){ temp=second.next; second.n
百度数据挖掘部门 自我介绍,扯了一些项目方面的东西,就是简历上的,然后开始写代码,最后问你有没有什么问题。 题目如下: (1)用两个栈实现一个队列(优化后解) public class QueueImplementByTwoStacks { Stack<Integer> a=new Stack<Integer>();
题目 Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For example,Given n = 3, there are a total of 5 unique BST's. 1 3 3 2 1 \
题目 Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number. An example is the root-to-leaf path 1->2->3 which represents the number 123. Find the
题目 Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero. Note: Elements in a triplet (a,b,c) m
在经典系统,可以在重新启动时按Shift键,将第三方的功能扩展关闭,使机子能完成启动,之后再设法修复磁盘错误或功能扩展冲突的问题。重新启动,当所有功能扩展的上载完成后,立即按下Option+Command键,直到出现重建桌面文件的窗口,点击OK,可以重建桌面文件,修复因桌面文件出错引起的问题。即使是正常运行的系统,至少每月重建桌面一次,对系统健康有益无害。 在X系统,重启后立即按Shift
题目 Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3
题目 Given a binary tree, flatten it to a linked list in-place. For example,Given 1 / \ 2 5 / \ \ 3 4 6 The flattened tree should look like: 1 \
题目 Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight). For example, the 32-bit integer ’11' has binary representation 00000
K-Means介绍 K-means算法是聚类分析中使用最广泛的算法之一。它把n个对象根据他们的属性分为k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。其聚类过程可以用下图表示: 如图所示,数据样本用圆点表示,每个簇的中心点用叉叉表示。(a)刚开始时是原始数据,杂乱无章,没有label,看起来都一样,都是绿色的。(b)假
题目 Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4]. Note:Try to come up as many solutions as you ca
题目 Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times. You may assume that the array is non-empty and the majority element
题目 Write a program to find the node at which the intersection of two singly linked lists begins. For example, the following two linked lists: A: a1 → a2 ↘
题目 Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Return [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 代码 public class Solution {
博主是goagent忠实用户,但是在mac下每次启动goagent都要cd到proxy的目录下,然后再执行proxy.py文件,非常麻烦,所以博主想到能否自己定义一个shell命令,一健启动goagent,其实也很简单,过程如下。 (1)我们在user目录下输入,"-a"是现实隐藏的文件ls -a (2)展现出了很多前边是"."的文件,这种文件在通常情况下是隐藏的 hirot
题目 Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum. For example:Given the below binary tree and s
题目 Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 代码 /** * Definition for binary
题目 Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example:Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20
题目 1.same tree Given two binary trees, write a function to check if they are equal or not. Two binary trees are considered equal if they are structurally identical and the nodes have the same value
题目 Given a sorted linked list, delete all duplicates such that each element appear only once. For example,Given 1->1->2, return 1->2.Given 1->1->2->3->3, return 1->2->3.
题目 Given two sorted integer arrays A and B, merge B into A as one sorted array. Note:You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from
题目 爬楼梯问题,这是一道很有趣的问题。首先看题目: 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
题目 Given two binary strings, return their sum (also a binary string). For example,a = "11"b = "1"Return "100". 代码 public class Solution { public String addBinary(String a, String b) {
题目 Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string. If the last word does not exist, return 0. Note: A word is d
题目 The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ... 1 is read off as "one 1" or 11.11 is read off as "two 1s" or 21.21 is read off as "one 2,
题目 判断数独是否成立的一道题,看的是某大神的答案,写的太漂亮了。 Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be partially filled, where empty cells are filled with the c
题目 Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. 代码 public class Solution { public int strStr(String haystack,
题目 Given an array and a value, remove all instances of that value in place and return the new length. The order of elements can be changed. It doesn't matter what you leave beyond the new lengt
题目 这道题是链表的简单应用,将两个有序链表合成一个有序链表。 思路是:表一,表二各取两个对象,分别指向current和next,进行交叉比较排序。 Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together
题目 题目要求:去除sort int数组中的重复项。 Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not allocate extra space for another
题目 这是道链表的简单应用题目,删除从结尾数第n个节点。 Given a linked list, remove the nth node from the end of list and return its head. For example, Given linked list: 1->2->3->4->5, and n = 2.
题目 Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[
题目 Write a function to find the longest common prefix string amongst an array of strings. 代码 public class Solution { public String longestCommonPrefix(String[] strs) { if(strs.lengt
题目 这道题是迄今为止最快通过的一道题,改了两次就过了,runtime一般(中等偏下,这点不太满意)。Palindrome就是判断一个整数是否对称。 Determine whether an integer is a palindrome. Do this without extra space. click to show spoilers. Some hints:Could
题目 题目很简单,就是写一个函数把string转换成int,但是通过率只有可怜的11%,难点是要考虑所有情况,特别是int溢出边界,反正我是写了2个小时还没解决,先放到这,有空接着搞,现在应该还有最后一个bug。 Implement atoi to convert a string to an integer. Hint: Carefully consider all pos
前话 今天开始励志刷一下leetcode上面的题目(还好这个网站没被TG和谐)。从easy的开始,数一下差不多有40道,争取两个月搞定。 题目 没想到做的第一道题目,虽然看似简单,却费了很大周折。 题目如下: Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -1
1.背景 追随着buptwusuopu大神的脚步,最近在研习动态规划。动态规划应该叫一种解决问题的思想,记得又一次去某公司面试就被问到了这个。 多于动态规划的理解,大致是这样的,从空集合开始,每增加一个元素就求它的最优解,直到所有元素加进来,就得到了总的最优解。 比较典型的应用就是背包问题,有一个重量一定的包,有若干件物品,他们各自有不同的重量
1.背景 用java写程序的时候很苦恼的一件事就是,如果将一个对象a赋给另一个对象b,那么你改变a的变量值得时候,b的值也对应的变化。如果我们只想单纯的获取那个时刻的a的状况给b的话,就要用到clone方法了。 比如说如下代码: public class Main { public static void main(String[] args) { // TODO
转眼2014就过去了,不禁感叹又老了一岁的同时,却发现已经快研究生毕业了,趁着这个活动简单总结下2014~~~~~~~~~~~ 1.实习篇 2014年一月份拿到了人生第一个实习offer,在sony这样的大公司做android开发。主要研究系统截屏功能,感觉在这方面稍微有了一点成就,无论是源码层,还是sdk端的大致原理都有了一定的了解。当时写了几篇博客,算是当时android系统截
这个问题困扰我好久了,今天就一查究竟,毕竟我好奇心比较重 1. why “public” 因为java程序是通过jvm虚拟机调用的,所以main()函数要是想被调用,必须是public 2.why “static” 在java中,没有static的变量或函数,如果想被调用的话,是要先新建一个对象才可以。而main函数作为程序的入口,需要在其它函数实例化之前就启动,这也就是为什么
1.背景 用mac的用户都应该知道,mac有一个很好的功能,就是dashboard小控件的功能,按下F12键就可以自由切换。博主最近在背GRE单词,就尝试这开发了一个背单词的dashboard小控件。效果如图 2.步骤 (1)安转dashcode 这个是开发工具,用起来有点像xcode, 下载地址:https://developer.app
1.背景 忙了一周,从设计算法到编程,到部署服务器,到最后的UI实现,终于我的微Q诞生了。 用起来非常的简洁,只要把微信或者qq的聊天记录导出来,是个txt文件,导入微Q,手机端也能用,它就能帮你分析谁是话唠,谁是话题终结者/开启者,谁是表情帝,热词,还有活跃时段。我自己用着还挺爽了。 美中不足:服务器比较慢,UI做的比较繁重,刷不出来得多刷新几次。 秀
最近在项目中部署结巴分词的时候遇到了乱码情况,明明是中文,确显示不出来或者显示乱码。解决方案如下。 利用isinstance 来判断是否已经编码,s是出问题的字符串。unicode是没编码 isinstance(s, unicode): 用print 打印,如果结果是true说明没编码。如果是false说明编码了,但是编的码不对 print isinstance(s,un
1.背景 单链表是最基本的数据结构,仔细看了很久终于搞明白了,差不每个部分,每个链都是node的一个对象。需要两个参数定位:一个是index,表示对象的方位。另一个是node的对象。 2.代码 node类 public class Node { protected Node next; protected int data; public Node(in
1.背景 欧几里得算法是一个求最大因子的快速算法。如果m,n存在最大因子k,假设m=x*n+r,那么m和n可以整出k的话,r也肯定可以整除k 因为定理:如果M>N,则M mod N<M/2 ,说明时间复杂度是O(log(n)) 2.代码 package Algorithm_analysis; public cla
1.背景 以一个题目为例,一个整数x是一组按大小顺序排列好的数列中的一个数,我们要找到x在数列中的索引位置。 比如按从小到大排列的数列: -3,-2,0,4,5,7,12,64 我们要找到数字7的位置,如果是线性查找,时间复杂度是O(n),如果用折半查找的话,时间复杂度是O(log(n)),因为每次折半,计算量少一半,所以取对数。 2.代码 package Algorith
1.背景 最大序列和问题一直以来是一个比较经典的算法题,看到这个问题,有很多解题的办法。今天看到了一种时间复杂度只为O(n)的解题算法,在这里记录下。 思路很简单,比方说有P1,P2,P3,P4.....这样一个序列,我们从P1开始求和,比如说在P5时求和数小于零,就可以断定。第一种情况,最大序列在P1~P5之间,或者说在P6~Pn之间。因为
1.理解 对于递归函数的理解,我觉得是比较重要的,因为很多大神能把递归函数用的惟妙惟肖,不光是他们的编程功力高深,更主要是能理解这个算法。比较直白的理解是,如果一个事件的逻辑可以表示成,f(x)=nf(x-1)+o(x)形式,那么就可以用递归的思路来实现。 编写递归逻辑的时候要知道如下法则: 1.要有基准 比如说,f(x)=f(x-1)+1,如果不加入基准,f(0
1.背景 最近被逼着写论文,用了下latex,真心高大上啊。可以写出特别漂亮的pdf,总结下用法,以后毕业论文能用上。 2.使用 (1)模板 没错,这个模板是真心重要,我其实也不会自己定义完整的一套格式,但是因为有代码基础,所以在模板的基础上修订还是不难的。我clone一个大神的模板列表,然后增加了论文,包括单栏和双栏。大家可以到git
1.背景 ok,可能很多朋友跟我一样经常使用各种api,比如facebook的,github的,甚至是微信的api。所以很多人也想制作自己的api。网上关于这方面的教程实在是很少,今天我就顺手做了一个,把方法公布下。 首先秀一下效果: 用“curl”方法,返回一个json,大家也可以试下: curl -i http://ospafzone.duapp.com/ospaf