自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BD的笔记

昨日已成往事,当下才属未来

  • 博客(16)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 调整数组顺序使奇数位于偶数前面

题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。最直接的想法是:从头到尾扫描这个数组,如果遇到偶数时,将这个偶数取出,将后面的每个数字往前挪一位,最后将取出的偶数放置在最后的位置上。每次取出一个偶数,后面的数都需要移动,所以时间复杂度O(n2)O(n^2)考虑双指针解法: 一个指向数组的首部(st),另一个指向数组的尾部(e

2016-09-29 08:59:43 565

原创 Leetcode 14 : Longest Common Prefix

Q:Write a function to find the longest common prefix string amongst an array of strings.分析: 一个字符数组的最长公共前序。例如”abcdsa”,”a”,”abcjd”的公共前序就是”a”,不难见得,最长公共前序是由最短的字符串来决定的,那么可以如下的一种思路: 1.求得前两个字符串的公共前序,存为ans

2016-09-29 08:10:45 337

原创 旋转数组的最小数字

题目: 把一个数组最旋转数组的特点:(1)递增排序的数组旋转之后的数组可划分为两个排序的子数组;(2)前面的子数组的元素都大于或等于后面子数组的元素;(3)最小的元素刚好是两个子数组的分界线;(4)旋转数组在一定程度上是有序的;在有序的数组中可以用二分查找实现O(logn)的查找,我们也可用二分查找的思想寻找旋转数组的最小数字。思路: 1. 设置两个指针,初始状态第一个指针指向前面子数组的第一个元

2016-09-27 16:24:07 291

原创 从尾到头打印链表

题目:输入一个链表的头结点,从尾到头反过来打印出每个节点的值。由尾到头打印,那么考虑到是逆序打印,可以往栈或递归方面想。 在不能改变链表结构的时候,我们需要考虑用栈。 找到尾节点,最起码我们需要遍历一次链表,那么先遍历到的节点却是在后面打印,这满足一个“先进后出”或者“后进先出”的性质,这就是栈了。所以考虑用栈来做这道题目即可Link结构:public class Link { int

2016-09-27 09:16:04 305

原创 二叉树层次遍历

将图示的二叉树按照层次遍历,即得到遍历顺序为 8,6,10,5,7,9,11思想: 打印节点,如果该节点为空,则返回。 否则打印该节点,如果该节点存在孩子节点则存入队列,直到无孩子节点代码: 节点结构:class TreeNode{ TreeNode left; TreeNode right; int value; public TreeNode(int

2016-09-26 09:57:04 680

原创 二叉树的镜像

如下有原来的二叉树(左图所示),镜像二叉树(右图所示),通过对比,发现,就是将左右孩子换了个位置而已,其余并没有改变。 思想: 如果当前节点有孩子,则交换位置。否则,返回镜像过程: /** * 一棵树得到它的镜像树 前提是有孩子 * @author BayMax * */class TreeNode{ TreeNode left; TreeNode right;

2016-09-26 07:35:54 314

原创 判断二叉搜索树的后序遍历序列是否合法

简单的分析一下,后序遍历,遍历顺序为左右根,那么序列的最后一个节点必为根节点。由于二叉搜索树的性质,根节点的左子树所有值小于根节点的值,右子树大于根节点,那么,我们只需要将序列分为左子树(leftTree)和右子树(rightTree),然后将左子树(leftTree)再分为左子树(left_leftTree)和右子树(left_rightTree),右子树(rightTree)分为左子树(left

2016-09-25 11:11:37 1214

原创 LeetCode 9 : Palindrome Number

Determine whether an integer is a palindrome. Do this without extra space.判断是否为回文数字,12321,1001即为回文,反过来与正着念都是一样代码:public class Solution { public boolean isPalindrome(int x) { //bound边界条

2016-09-24 14:06:15 306

原创 LeetCode 3:Longest Substring Without Repeating Characters

Question: 双指针,移动窗口问题。维护一个[st,etd)的窗口,不断向右进行滑动,当[st,etd)不包含etd位置上的字符时,将etd位置上的字符加入[st,etd)->[st,etd] 如果[st,etd)包含etd,则st向右滑动,直到找到与etd位置相同的字符[st,etd)->[st+1,etd)简单使用图形演示一下 “abcabcbb”时候的情况 java代码:p

2016-09-22 10:17:45 330

原创 LeetCode 167:Two Sum II - Input array is sorted

排好序(升序)的一列数numbers,给定一个数key,求数列中是否存在两个数的和为给定的数key,若有则返回下标(从1开始,并不是0) 双指针问题,一个指向前部st,一个指向尾部etd。 那么分三种情况,如果numbers[st]+numbers[etd]>target ,那么说明需要值大,需要减小,只有etd往左移动才是减小(etd往右是增大,st往右也是增大),所以etd–number

2016-09-19 07:28:37 427

原创 LeetCode 72 Edit Distance DP解法思路记录

leetcode 72 Edit Distance 给定两个字符串,寻找最小的操作数,使得word1变为word2. 1.可以插入字符 2.可以删除字符 3.可以替换字符 对于上面的讲解如下: 1.对应位置相同则不去扣分即不进行任何操作,不同则扣一分(需要修改) 2.两个特殊字符”-“不会对应的意思是,可以反过来理解,如果两个特殊字符对应,那么特殊字符的位置不可能是在字符之间,

2016-09-17 21:39:36 749

原创 动态规划(Dynamic Programming)学习笔记记录

要了解DP,需要知道递归的知识和基本的暴力搜索。定义:本质:递归原问题(N)->子问题(N-1)->原问题(N)最优子结构子问题最优决策可导出原问题最优决策 无后效性重叠子问题去冗余 空间换时间(注意分析时空复杂度)基本步骤: 四个步骤设计暴力算法,找到冗余 设计并存储状态(一维,二维,三维数组,甚至用Map) 递归式(状态转移方程) 自底向上计算最优解(编程方

2016-09-14 19:23:13 1711

原创 抽屉原理( 鸽巢原理、重叠原理、狄利克雷)笔记记录

桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面至少放两个苹果。这一现象就是我们所说的“抽屉原理”。 抽屉原理的一般含义为:“如果每个抽屉代表一个集合,每一个苹果就可以代表一个元素,假如有n+1个元素放到n个集合中去,其中必定有一个集合里至少有两个元素。” 抽屉原理有时也被称为鸽巢原理。它是组合数学中一个重要的原理。第一抽屉原理:原理1: 把多于n个(n+k)

2016-09-07 15:49:15 11585 1

原创 Asymptotic Analysis——渐近分析

上图主要介绍的是渐进分析的动机是什么。高级推理算法的“灵魂”(翻译水平有限,不知道合适不合适,若有好的翻译请告诉我,或者你直接看英文原版吧)不关注架构/语言/编译器的相关细节(意为只关注算法本身)对于不同算法的比较特别有用,尤其是在大型输入(例如排序或整数乘法) 不关注常数因子和低阶项,举了一个例子 6nlog2n+66nlog_2n+6去除常数因子6和低阶项6得到nlognnlogn,用

2016-09-06 15:10:54 8122

原创 汉诺塔(Hanoi)递归算法笔记记录

汉诺(Hanoi)塔问题:古代有一个梵塔,塔内有三个座A、B、C,A座上有64个盘子,盘子大小不等,大的在下,小的在上(如图找了张5个的,意思一样)。有一个和尚想把这64个盘子从A座移到B座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求打印移动的步骤。如果只有一个盘子,则不需要利用B座,直接将盘子从A移动到C。 分析: 以

2016-09-06 08:29:15 2152

原创 Java算法之链表笔记记录

本篇主要介绍一种新的数据存储结构——链表。链表可能是继数组之后第二种使用得最广泛的通用存储结构。 链表的机制灵活,用途广泛,适用于许多通用数据库。它也可以取代数组,作为其他存储结构的基础,例如栈,队列。除非需要频繁通过下标随机访问各个数据,否则在很多使用数组的地方都可以用链表代替。链结点在链表中,每个数据项都被包含在“链结点”(Link)中。一个链结点是某个类的对象,这个类可以叫做Link。因为一

2016-09-04 13:55:24 2432

SimpleAuthority 4.5.dmg.zip

该工具可以自行做ca,并分析数字签名格式,符合ans语法规范。附件适合mac系统使用

2019-07-05

Washington Machine Learning_slider_PPT

该PPT是coursera公开课网站上华盛顿大学的Machine Learning课程第二周PPT,里面的图片可供选用,内容比较简单,答案在我的个人博客上面blog.csdn.net/dingchenxixi

2016-06-26

咬尾卷积编码的程序

咬尾卷积编码的代码,是正确的,里面还有详细的说明,对学习LTE中的咬尾卷积编码有很大的帮助

2015-01-04

光孤子的产生,光孤子通信

认真描述了光孤子的产生原理,光孤子通信的发展,对于研究光通信很有帮助

2014-12-22

扩频水声通信

正交多载波M元循环移位键控扩频水声通信,对于研究扩频通信和水声通信有帮助

2014-12-22

通信中的各种调制

本代码是通信系统中的各种调制的代码,用于MATLAB仿真

2014-12-10

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

TA关注的人

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