自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zengzhen_CSDN的博客

不积跬步,无以至千里;不积小流,无以成江海。

  • 博客(16)
  • 收藏
  • 关注

原创 《剑指offer》——寻找链表中倒数第k个结点

struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL){}}; ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { if(pListHead == NULL || k <

2015-12-29 19:07:35 275

原创 《剑指offer》——任意两个整数相加(乘)

#includeusing namespace std;//正整数相加char *plus(char *a,char *b){ int len_a = strlen(a); int len_b = strlen(b); int len_sum; if(len_a < len_b) len_sum = len_b; else

2015-12-25 15:47:53 711

原创 《剑指offer》——打印1到最大的n位数

#includeusing namespace std;bool inc(char *num){ //累加结束标志,初始为false //只有当下标为0的位置上产生进位时,才能表明打印结束 bool flag = false; int len = strlen(num); int c = 0;//进位标志 for(int i = len -

2015-12-22 20:16:34 323

原创 《剑指offer》——数值的整数次方

不考虑大数问题,double Power(double base, int exponent) { //如果底数为0,且幂方为负数 //注意浮点型判定相等不能直接使用== if(base - 0.0 > -0.0000001 && base - 0.0 < 0.0000001 && exponent < 0) return 0;

2015-12-22 20:14:48 320

原创 《剑指offer》——用两个栈实现队列

题目: 用两个栈实现队列。分析与解法: 使用两个栈stack1和stack2。假设入栈时使用stack1;则出栈时使用stack2,若stack2中没有元素,则将stack1中的元素依次出栈,并在stack2依次入栈,再使stack2中的元素出栈,则stack1中先入栈的元素先出栈;若出栈时stack2中有元素,则直接出栈。如图所示, 代码如下,class Solution{publ

2015-12-17 19:07:04 299

原创 《剑指offer》——从尾到头打印链表

从尾到头打印头节点可以借助栈来实现。递归的本质是一个栈结构,又可以使用递归的方法来实现。typedef struct Node{ int data; struct Node *next;}Node, *LinkList;//栈void reversePrint(LinkList &L){ if(L -> next == NULL) return;

2015-12-15 19:32:10 243

原创 《剑指offer》——替换空格

题目: 请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy. ”,则输出“We%20are%20happy.”。分析与解法: void replaceSpace(char *str, int length){ if(str == NULL || length <= 0) return; int num = 0;//空格数

2015-12-14 19:40:22 371

原创 《剑指offer》——二维数组中的查找

在行列递增的二维数组中查找数字7的方法如图所示, 根据上图步骤编写代码如下,int Find(int *matrix, //待查数组 int row,//行数 int col,//列数 int num)//待查数字{ int i = col - 1; int j = 0; while(j < row && i >=

2015-12-11 19:49:22 238

原创 《剑指offer》——重载赋值运算符函数

class CMyString{ public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(); private: char* m_pData;};//为了可以连续赋值,返回值类型应为对象的引用//参数应为c

2015-12-10 20:48:40 405

原创 《剑指offer》——字符串转换为整数

#include<iostream>using namespace std;int strToInt(const char* str){ int num = 0; int t = 1; while(*str != 0)//字符串结束 { if(*str < '0' || *str > '9')//若元素不是数字字符 {

2015-12-09 16:39:43 380

原创 《疯狂JAVA讲义》——Singleton类

如果一个类始终只能创建一个实例,则这个类被称为单例(Singleton)类。class Singleton{ //使用一个变量来缓存曾经创建的实例,因为该变量需要被静态方法访问 //所以使用static修饰 private static Singleton instance; //对构造器使用private修饰,对外隐藏该构造器 private Single

2015-12-05 16:23:57 387

原创 《疯狂JAVA讲义》——instanceof运算符

instanceof运算符的前一个操作数是一个引用类型变量,后一个操作数是一个类(接口),用于判断前面的对象是否是后面的类,或子类、实现类的实例。若是,返回true;反之,返回false。instanceof运算符前面的操作数编译时的类型要么与后面的类型相同,要么与后面的类型有父子继承关系,否则会引起编译错误。public class InstanceofTest{ public stat

2015-12-05 15:54:23 791

原创 《疯狂JAVA讲义》——多态

Java引用变量有两个类型:一个是编译时的类型,一个是运行时的类型。 编译时的类型由声明该变量时所使用的类型决定; 运行时的类型由实际赋值给该变量的对象决定。当编译时的类型与运行时的类型不一致时,会发生多态(Polymorphism)。代码:class BaseClass{ public int book = 6; public void base() {

2015-12-04 17:04:44 495

原创 《疯狂JAVA讲义》——二维数组

Java语言里的数组类型是引用类型,因此,数组变量是一个引用,这个引用指向真实的数组内存。如果数组元素的引用再次指向真实的数组内存,那么这种情形看上去很像多维数组。根据一维数组的定义, type[ ] arrName;数组元素再次指向真实的数组内存的定义方法就可以是, type[ ][ ] arrName;即把type的类型定义为type[]型。 接着对这个“二维数组”初始化,根据一位

2015-12-03 19:06:02 352

原创 《编程之美》——数组分割

问题: 将一个无序、元素个数为2N的正整数数组分割为元素个数为N的两个数组,并使两个子数组的和最接近。分析与解法: 【解法一】 动态规划的0-1背包问题。将heap[M](M表示从2N中所有可能的M个元素和组成的集合),从下到上(m->1…->N)最终求的完整的heap[N]。要点:可以想成求不大于sum/2的最接近集合,以下为分析:假设数组A[1..2N]所有元素的和是SUM。模仿动态规划解

2015-12-02 14:43:49 493

原创 《编程之美》——数组循环移位

问题: 把一个含有N个元素的数组循环又移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。分析与解法: 全面地考虑问题,K不一定是小于N的,也有可能远大于N。因为右移K位的结果与右移K-N位的结果相同,所以需要对K进行处理,使K %= N。假设原数组是abcd1234,循环右移4位后,数组变为1234abcd。可以看出数组的前后两段的顺序是不变的,于是把数组看成两个部分,右移的过程是把数

2015-12-02 10:39:56 413

空空如也

空空如也

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

TA关注的人

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