Quantcast
Channel: 勇幸|Thinking »编程之美
Browsing latest articles
Browse All 4 View Live

交换两段连续(不连续)内存

在《编程珠玑,第二版》和《编程之美》中都有关于交换两段连续的内存块的题目,而且非常经典,交换两段连续内存块的问题又可以延伸到交换两段不连续内存块的问题,无论是哪种情况都需要一个基本操作:反转内存块。 反转内存时,比较简单,可以两个指针同时走,也可以一个指针,随意,实现如下: 01 // reverse the memory block 02 // goal: |12345| ->...

View Article



字符串相似度(编辑距离)

--- 个人认为,大部分情况下,DP寻找子问题还是“从后向前”比较直观一些,像这道题目,个人觉得《编程之美》对它的分析就有些别扭,它“从前向后”寻求的子问题使得状态转移矩阵的初始化变得不太方便,不过“从后向前”分析和从前向后效果和原理都是一样的,本节通过三种实现方式来加深理解。...

View Article

最长递增子序列(LIS)

--- 最长递增子序列又叫做最长上升子序列;子序列,正如LCS一样,元素不一定要求连续。本节讨论实现三种常见方法,主要是练手。 题:求一个一维数组arr[i]中的最长递增子序列的长度,如在序列1,-1,2,-3,4,-5,6,-7中,最长递增子序列长度为4,可以是1,2,4,6,也可以是-1,2,4,6。 方法一:DP...

View Article

Image may be NSFW.
Clik here to view.

二分查找,你真的会吗?

--- 面试常让写二分查找或其扩展的程序,以前总觉得很简单,但是真动手写起来,细节很多,容易出错的地方也很多,真是秒杀眼高手低的利器,本节就二分查找以及相关扩展程序都实现一下,同时将可能出错的地方以及需要注意的细节也一并说明,水平有限,欢迎补充。 内容如下: 1)二分查找元素key的下标,如无 return -1 2)二分查找返回key(可能有重复)第一次出现的下标,如无return -1...

View Article
Browsing latest articles
Browse All 4 View Live




Latest Images