BD的笔记

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

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

题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。最直接的想法是:从头到尾扫描这个数组,如果遇到偶数时,将这个偶数取出,将后面的每个数字往前挪一位,最后将取出的偶数放置在最后的位置上。每次取出一个偶数,后面的数都需要移动,所...

2016-09-29 08:59:43

阅读数 413

评论数 0

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”,不难见得,最长公共...

2016-09-29 08:10:45

阅读数 223

评论数 0

旋转数组的最小数字

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

2016-09-27 16:24:07

阅读数 223

评论数 0

从尾到头打印链表

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

2016-09-27 09:16:04

阅读数 245

评论数 0

二叉树层次遍历

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

2016-09-26 09:57:04

阅读数 352

评论数 0

二叉树的镜像

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

2016-09-26 07:35:54

阅读数 236

评论数 0

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

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

2016-09-25 11:11:37

阅读数 834

评论数 0

LeetCode 9 : Palindrome Number

Determine whether an integer is a palindrome. Do this without extra space.判断是否为回文数字,12321,1001即为回文,反过来与正着念都是一样代码:public class Solution { public ...

2016-09-24 14:06:15

阅读数 211

评论数 0

LeetCode 3:Longest Substring Without Repeating Characters

Question: 双指针,移动窗口问题。维护一个[st,etd)的窗口,不断向右进行滑动,当[st,etd)不包含etd位置上的字符时,将etd位置上的字符加入[st,etd)->[st,etd] 如果[st,etd)包含etd,则st向右滑动,直到找到与etd位置相同的字符[st,e...

2016-09-22 10:17:45

阅读数 240

评论数 0

LeetCode 167:Two Sum II - Input array is sorted

排好序(升序)的一列数numbers,给定一个数key,求数列中是否存在两个数的和为给定的数key,若有则返回下标(从1开始,并不是0) 双指针问题,一个指向前部st,一个指向尾部etd。 那么分三种情况, 如果numbers[st]+numbers[etd]>target ,那么说明需...

2016-09-19 07:28:37

阅读数 323

评论数 0

LeetCode 72 Edit Distance DP解法思路记录

leetcode 72 Edit Distance 给定两个字符串,寻找最小的操作数,使得word1变为word2. 1.可以插入字符 2.可以删除字符 3.可以替换字符 对于上面的讲解如下: 1.对应位置相同则不去扣分即不进行任何操作,不同则扣一分(需要修改) 2.两个特殊...

2016-09-17 21:39:36

阅读数 489

评论数 0

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

要了解DP,需要知道递归的知识和基本的暴力搜索。定义: 本质:递归 原问题(N)->子问题(N-1)->原问题(N) 最优子结构 子问题最优决策可导出原问题最优决策 无后效性 重叠子问题 去冗余 空间换时间(注意分析时空复杂度) 基本步骤: 四个步骤 设计暴力算法,找到冗余 ...

2016-09-14 19:23:13

阅读数 1022

评论数 0

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

桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面至少放两个苹果。这一现象就是我们所说的“抽屉原理”。 抽屉原理的一般含义为:“如果每个抽屉代表一个集合,每一个苹果就可以代表一个元素,假如有n+1个元素放到n个集合中去,其中必定有一个集合里至少有两个元素。” ...

2016-09-07 15:49:15

阅读数 4914

评论数 1

Asymptotic Analysis——渐近分析

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

2016-09-06 15:10:54

阅读数 3206

评论数 0

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

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

2016-09-06 08:29:15

阅读数 1211

评论数 0

Java算法之链表笔记记录

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

2016-09-04 13:55:24

阅读数 2062

评论数 0

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