自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DawnChau

机器学习学习中...

  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 线性近似

今天重温高等数学,看到了一个概念,叫做线性近似( Linear Approximation),当年大一的时候竟然没有懂,今天看了下明白了啥意思,特此记录,以防忘记。   所谓线性近似,也叫线性逼近,就是怎样把一个非线性的函数写成一个线性的函数?   线性逼近的主要作用是把一个复杂的非线性函数用一个简单的线性函数来表示。   公式如下:      其中就是近似后的线性函数。   点 叫做

2017-08-03 18:52:24 12861 1

原创 怎样用异或查找出多出的字母

今天刷leetcode,遇到了一道题,很有意思,就是给了俩字符串,一个A,一个B,字符串B是这样子的,先把字符串A打乱,然后随机在A中加入一个任意字母,就变成了B。问加入的是啥字母?   举个例子:   A:“abc”   B:“cbea”   那么很明显,加入的字母是e。如何求出来呢?   这里介绍一种非常简答的方法,就是使用异或。   因为字母是char类型,char类型可以当做in

2017-08-01 22:46:43 2176 1

原创 怎样从数学的角度判断一个数是不是另一个数的指数

今天刷题的时候,刷了两道题,都是用来判断数a是不是数b的几次方,刚开始是判断数a是不是数b的2次方,比如说2,4,8之类,这道题有些小的技巧,就是如果一个数是2的幂,那么这个数的二进制里一定只含有一个1,所以只需要判断这个数的二进制只含有一个1就行,用 n & n-1大法来进行判断。   需要注意的是,数a一定不能是非正数。   代码如下:class Solution {public:

2017-07-30 20:17:07 1591

原创 怎样将矩阵Reshape

今天刷题的时候,遇到一个问题挺有意思的,特此记录,就是如何将一个矩阵给执行Reshape操作。   举个例子,比如说给出一个4*4的矩阵,如何将其Reshape成为一个8*2的矩阵?当然,矩阵如果可以Reshape的话,必须保持变形之前和变形之后的元素的个数不变。   如下图所示:      首先,我们先来介绍一个神奇的操作,就是如何快速确定自己的位置。   想象这样一种场景,有16个队员

2017-07-29 13:28:45 1267

原创 如何求一个数的补数

发现了一个问题自己还不是很懂,就是说如何求一个数的补数,举个例子,比如5,二进制是101,那么它的补数就应该是010就是2。   你可能会问了,这不是很简单吗?取反就行了啊,~5就行,事实上是这样子吗?当然不是了,因为5是101,但是它前边还有很多0。   如果按照无符号int来看的话,是32个bit。   为了简单,我们只写最后8个bit,是   0000 0101   那么它的补数2

2017-07-28 21:46:34 6454 4

原创 汉明距离

汉明距离(Hamming Distance)  所谓汉明距离,是针对于两个数而言的,它的概念是:两个数的二进制中不相同的位的个数。   举个简单的例子,比如说,求3和5的汉明距离,步骤如下: 3的二进制是011 5的二进制是101  从上边的例子可以看出,3和5 的二进制中,有2位是不同的,所以,3和5的汉明距离就是2。   所以,知道了汉明距离的概念,那么我们要怎么去计算汉明距离呢

2017-07-20 15:23:30 1972

原创 如何使用SQL语句交换男女性别

今天刷LeetCode上的SQL语句,其中有一道题,是让你把表中的男女属性进行互换,也就是说,如果表中原来的性别是男性的话,现在你要把它变成女性,如果原来是女性的话,现在需要把它变成男性。并且题目要求只能使用一次update语句。   本来我想的是,先把所有男性的给update成女性,再把所有女性的给update成男性,但是这样的话,需要使用两次update,显然不符合条件,于是我就GG了(好吧,

2017-07-20 14:54:48 9698 1

原创 信息熵、信息增益与信息增益率

信息熵和信息增益通俗解释

2017-06-19 17:49:24 29456 3

原创 【栈】用一个栈来实现另一个栈的排序

【题目描述】    在一个栈中元素的类型为整型,现在想将该栈从栈顶到栈底按从大到小的顺序排序,只许申请一个栈,除此之外,可以申请其他变量,但是不能申请额外的数据结构,如何完成排序【我的代码】/** * 用一个栈实现另一个栈的排序 * @param stack */ public static void sortStackByStack(Stack stack){

2016-11-02 22:36:19 1219

原创 【栈】猫狗队列

【题目描述】    给出宠物(Pet),猫(Cat)和狗(Dog)的类,实现一种猫狗队列,要求如下:用户可以调用add方法将cat类或者dog类的实例放入队列中用户可以调用pollAll方法将队列中所有的实例按照进队列的先后顺序依次弹出用户可以调用pollDog方法将队列中的dog类的实例按照进队列的先后顺序依次弹出用户可以调用pollCat方法将队列中的cat类的实例按照队列的先

2016-11-01 10:44:15 443

原创 【栈】仅用递归来实现栈逆序

【题目要求】    实现栈中元素的逆序,但是只能用递归来实现,不能用其他的数据结构【我的代码】 //获取栈的最底部的值,并把这个值从栈中移除 public static int getAndRemoveLastElement(Stack stack){ int result = stack.pop(); if(stack.isEmpty()){ r

2016-10-31 11:24:11 424

原创 【栈】由两个栈组成队列

题目描述:    编写一个类,用两个栈实现队列,支持队列的基本操作(add,poll,peek)我的代码:public class Solution { Stack stack1 = new Stack(); Stack stack2 = new Stack(); //add操作 public void add(int node) {

2016-10-30 17:43:12 393

原创 【栈】写一个带有getMin功能的栈

题目描述:    实现一个特殊的栈,在实现栈的基本功能的基础上再实现返回栈中最小元素的功能要求:    1. pop, push,getMin 操作的时间复杂度都是O(1)    2. 设计的栈类型可以使用现成的栈结构我的代码:import java.util.Stack;/** * 含有getMin功能的栈,典型的以空间换时间 * @author

2016-10-29 14:58:18 367

原创 【矩阵】清除行列

题目描述:请编写一个算法,若N阶方阵中某个元素为0,则将其所在的行与列清零。给定一个N阶方阵int[][](C++中为vector>)mat和矩阵的阶数n,请返回完成操作后的int[][]方阵(C++中为vector>),保证n小于等于300,矩阵中的元素为int范围内输入示例:[[1,2,3],[0,1,2],[0,0,1]]输出示例:[[0,0,

2016-10-13 13:10:16 1043

原创 【矩阵】矩阵顺时针旋转

题目描述:有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于500,图像元素小于等于256。输入用例:[[1,2,3],[4,5,6],[7,8,9]],3输出用例:[[7,

2016-10-13 12:59:21 699

原创 【动态规划】 最长递增子序列

题目描述:对于一个数字序列,请设计一个复杂度为O(nlogn)的算法,返回该序列的最长上升子序列的长度,这里的子序列定义为这样一个序列U1,U2...,其中Ui 给定一个数字序列A及序列的长度n,请返回最长上升子序列的长度。输入用例:[2,1,4,3,1,5,6],7输出用例:4我的代码:    第一种解法,时间复杂度是O(n^2)

2016-10-11 19:43:32 271

原创 【链表】删除链表中的重复元素

题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5我的代码:/** * 删除链表中的重复元素 * @param pHead 原链表的头结点 * @return 返回删除重复元素之后的新的链表的头结点 */ public Lis

2016-10-10 10:34:54 2077

原创 【字符串】翻转单词顺序

题目描述:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?我的代

2016-10-09 19:44:20 533

原创 【位运算】求两个数的二进制有多少位不同

问题描述:世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?输入例子:1999     2299输出例子:7我的代码:/** * 求两个数的二进制中不同的位数 * @param m * @param n * @return 返回不同的位数的个数 */

2016-10-09 19:27:57 5139 1

原创 【字符串】字符串的全排列

题目描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。我的代码:import java.util.ArrayList;impor

2016-10-08 20:56:17 849

原创 【华为机试】汽水瓶

题目描述:有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?

2016-10-07 21:31:44 320 1

原创 【动态规划】上楼梯

题目描述:有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶、3阶。请实现一个方法,计算小孩有多少种上楼的方式。为了防止溢出,请将结果Mod 1000000007给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100000输入:1输出:1分析:因为只能跳一步或者两步或者三步,那么用数组保存,跳到n阶的方法

2016-06-08 22:29:09 1170

原创 【动态规划】罪犯转移

题目描述:C市现在要转移一批罪犯到D市,C市有n名罪犯,按照入狱时间有顺序,另外每个罪犯有一个罪行值,值越大罪越重。现在为了方便管理,市长决定转移入狱时间连续的c名犯人,同时要求转移犯人的罪行值之和不超过t,问有多少种选择的方式?输入描述:第一行数据三个整数:n,t,c(1≤n≤2e5,0≤t≤1e9,1≤c≤n),第二行按入狱时间给出每个犯人的罪行值ai(0≤ai≤1

2016-06-07 17:23:31 684

原创 【动态规划】股票交易日

题目描述:在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于2),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行)。给出一天中的股票变化序列,请写一个程序计算一天可以获得的最大收益。请采用实践复杂度低的方法实现。给定价格序列prices及它的长度n,请返回最大收益。保证长度小于等于500。测试用例:[10,22,5,75,65,80],6

2016-06-03 11:29:32 3625 3

原创 【动态规划】求二维矩阵的最大和子矩阵

题目描述:有一个正整数和负整数组成的NxN矩阵,请编写代码找出元素总和最大的子矩阵。请尝试使用一个高效算法。给定一个int矩阵mat和矩阵的阶数n,请返回元素总和最大的子矩阵的元素之和。保证元素绝对值小于等于100000,且矩阵阶数小于等于200。测试用例:[[1,2,-3],[3,4,-5],[-5,-6,-7]],3返回:10题目解析:

2016-05-30 21:06:14 9331

原创 【动态规划】minimum-path-sum

题目描述:Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.Note: You can only move either down or rig

2016-05-30 19:28:11 665

原创 【动态规划】放苹果

题目描述:把 M 个同样的苹果放在 N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?注意:5、1、1 和 1、5、1 是同一种分法,即顺序无关。输入描述:输入包含多组数据。每组数据包含两个正整数 m和n(1≤m, n≤20)。输出描述:对应每组数据,输出一个整数k,表示有k种不同的分法。

2016-05-29 20:55:02 1589

原创 【动态规划】爬台阶

题目描述: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 top?我的代码:public class

2016-05-29 20:14:15 822

原创 【动态规划】独一无二的路径

题目描述:有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。给定两个正整数int x,int y,请返回机器人的走法数目。保证x+y小于等于12。输入:2,2输出:2我的代码:import java.util.*;public class Robot { /** * 计算一

2016-05-29 20:09:17 439

原创 一些很有用的小函数(自己写的)

1.求一个矩阵乘法和矩阵乘方 /** * 矩阵乘法 * @param A x*y的矩阵 * @param B y*z的矩阵 * @return C x*z的矩阵 */ public static int[][] multi(int A[][], int B[][]) { // A的行数 int x = A.length; // A的列数 = B的

2016-05-21 16:38:55 328

原创 用数组代替递归极大提高算法时间

以斐波那契数列为例,常见的写法如下:import java.util.Scanner;public class Main { public static int getNum(int n) { if(n == 1 || n == 2){ return n; } else return getNum(n-1) + getNum(n-2); } public s

2016-05-21 16:29:59 559

原创 面试常用排序算法

public class Sort { // 插入排序 public void insertSort(int array[], int length) { // 从1开始遍历 for (int i = 1; i < length; i++) { int j = i - 1; //temp用来记录需要插入的值 int temp = array[i]; for (;

2016-05-18 19:10:15 256

原创 编程题中需要注意的问题

1.Java中怎么对一个List进行排序Collections.sort(list)2.怎样高逼格的判断一个数是奇数还是偶数if((num&1)==0) //是偶数else //是奇数//注意 & 的优先级小于 ==

2016-05-18 10:24:19 432

原创 【读书笔记】Android安全机制解析与应用实践之源码分析

由此可以看出,在应用层创建共享内存的步骤是MemoryFile类对象的创建映射匿名共享内存,需要把共享内存设备文件映射到内存空间,映射成功后返回虚拟空间的起始地址,之后可以对共享内存进行读写操作MemoryFile类的读写操作方法MemoryFile的匿名共享内存读写操作锁定和解除锁定,正在使用的时候锁定,不使用的时候解锁Binder机制:Client和Se

2016-04-24 11:31:41 779

原创 【读书笔记】Android安全机制解析与应用实践之安卓的安全模型

安卓的安全模型:安卓应用程序在安装的时候被赋予独特的用户标识UID.apk应用程序包必须被开发者数字签名权限声明:Normal:申请即可用   Dangerous:安装时由用户确认进程间通信:Binder基于共享内存,是CS模式内存管理机制:LMK低内存清理由此可以看出,进程有自己独立的虚拟内存空间,由内核区和

2016-04-23 20:03:38 893

原创 【读书笔记】Android安全机制解析与应用实践之安卓的启动

安卓的启动过程是这样子的ROM上电Bootloader引导程序启动Linux内核启动init进程启动Android系统本地服务启动Zygote进程启动Android系统服务启动Android系统主页面启动Android4.0之前的半杯是Linux2.6的内核Android4.0之后的版本是3.X的内核,并且3.X的内核中含有Android源码,可以直接引导进入A

2016-04-23 18:33:35 430

原创 信息安全学习笔记

1.受限制的算法:算法的保密性基于保持算法的秘密2.基于密钥的算法:算法的保密性基于对密钥的保密3.分组密码:将明文分成固定长度的组,用同一密钥算法对每一块加密,输出也是固定长度的密文4.流密码:有成序列密码,每次加密一位或者一个字节的明文5.凯撒密码的密文空间是26,使用密钥的凯撒密码的密文空间是26!7.传统加密机制对称密码的两个基本运算:代替和置换。对称密码分析的两个基本

2016-04-20 11:02:05 714

Hardware Systems PPT

Unit 2 : Hardware Systems 欢迎各位来下载

2013-10-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除