【程序员编程艺术】学习记录2:左旋转字符串之循环移位法
GCD算法:(辗转相除法/欧几里得算法)
gcd是求最大公约数的算法,作为TAOCP第一个算法
gcd算法流程:
首先给定两个整数m,n(m大于等于n)如果小于则直接交换再处理
①求余数 r=m%n
②假如r=0,算法结束,n即为所求
否则,重新令m
STL中rotate算法:
对于数组移位问题,可以采用下面方法:...
分类:
其他好文 时间:
2014-07-18 16:38:35
阅读次数:
243
1. 放大缩小float value = 2.0;self.imageView.transform = CGAffineTransformMakeScale(value, value);2. 移动// 重新赋值按钮的中点orangeBtn.center = center;3. 旋转// 左旋转...
分类:
其他好文 时间:
2014-07-18 08:20:30
阅读次数:
135
【程序员编程艺术】学习记录1:左旋转字符串之指针翻转法
题目:左旋转字符串
定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部,如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数,要求对长度为n的字符串操作的时间复杂度为O(n),空间复杂度为O(n)
思路一、暴力移位法
//暴力移位法
void leftshiftone(char *s, ...
分类:
其他好文 时间:
2014-07-17 11:06:47
阅读次数:
216
左旋转字符串 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作的功能.编程珠玑, 首先翻转前部分, 再翻转后部分, 最后全部翻转.代码:/*
* main.cpp
*
* Created on: 2014.6.12
* Autho...
分类:
其他好文 时间:
2014-07-12 17:06:43
阅读次数:
182
A. 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数(在文件夹中至少缺失一个这样的数-为什么?)。在具有足够内在的情况下,如何解决该问题?如果有几个外部的“临时”文件可用,但是仅有几百字节的内存,又该如何解决该问题?B.将一个n元一维向量向左旋转i个位置。例如...
分类:
其他好文 时间:
2014-07-10 00:20:45
阅读次数:
226
其实编程之美也有类似的题,这道题是编程珠玑第二章的题目。题目描述:给定一个字符串,将字符串循环移位K次。最简答的方法就是,通过O(n)的辅助空间,将数组循环移位,时间复杂度就是O(n)但是如果要求空间复杂度为O(1)呢?观察规律可知,对前K位反转以及后面的反转,最后对整个字符串反转就能达到O(1)的...
分类:
其他好文 时间:
2014-06-10 21:02:52
阅读次数:
275
这道题之前在Cracking the Coding interview上做过类似的,一样的三次反转,即可得到,时间复杂度为O(n),空间复杂度为O(1)。这道题在九度OJ上测试,主要要考虑移动的位数大于字符串长度时的情况,取余即可。...
分类:
其他好文 时间:
2014-06-05 09:34:36
阅读次数:
236
- (IBAction)leftRotate { // 1.取得头像按钮 UIButton *head
= (UIButton *)[self.view viewWithTag:10]; // 2.向左旋转45° // 45 180 // 角度是正数:顺时针,
角度是负数:逆时针// ...
分类:
其他好文 时间:
2014-05-28 13:36:43
阅读次数:
237
TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识点: 1、红黑树的基本概念。 2、红黑树增加节点、删除节点的实现过程。 3、红黑树左旋转、右旋转的复杂过...
分类:
编程语言 时间:
2014-05-25 01:00:06
阅读次数:
382