算法初探
aNotFound404
一只低调的码农。
展开
-
算法初探001——单链表反转
单链表的反转问题是一道很基本的问题。题目如下: 有一个单链表 1 ->2->3->4->5->6 反转后链表为:6->5->4->3->2->1.方法一解析:可以使用三个指针pre ,temp,next对逐个节点进行反转。详细流程如下: (4) 初始状态pre = head; tmp = head->next; pre->next = null;(2)第一次循环:next = tmp->next原创 2015-10-17 00:13:55 · 1466 阅读 · 1 评论 -
排序算法001——直接插入排序
**一、基本思想** 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。插入排序非常类似于整扑克牌。在开始摸牌时,左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左地进行比较。无论什么时候,左手中的牌都是排好序的。如果输入数组已经是排好序的话,插入排序出现最佳情况,原创 2015-11-22 22:38:01 · 722 阅读 · 0 评论 -
[剑指offer-1384] 二维数组中的查找
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。输入:输入可能包含多个测试样例,对于每个测试案例, 输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的矩阵的行数和列数。 输入的第二行包括一个整数t(1<=t<=1000000):代表要查找的数字。原创 2016-01-31 23:15:58 · 440 阅读 · 0 评论 -
[剑指offer-1510]替换空格
题目描述:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。输入:每个输入文件仅包含一组测试样例。 对于每组测试案例,输入一行代表要处理的字符串。输出:对应每个测试案例,出经过处理后的字符串。样例输入:We Are Happy样例输出:We%20Are%20Happy 代码实现 void r原创 2016-02-03 16:48:19 · 466 阅读 · 0 评论 -
[剑指offer-1385]重建二叉树
题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。输入:输入可能包含多个测试样例,对于每个测试案例, 输入的第一行为一个整数n(1<=n<=1000):代表二叉树的节点个数。 输入的第二原创 2016-02-03 22:08:07 · 391 阅读 · 0 评论 -
大数加法
思想:用数组来代替基本类型 来实现大数加法 代码实现 // main.c // 大数加法 // // Created by devilthrone on 16/3/13. // Copyright (c) 2016年 devilthrone. All rights reserved. //#include <stdio.h> void add(char a[],char b[],char原创 2016-03-13 18:19:51 · 558 阅读 · 0 评论 -
leetcode 226: Invert Binary Tree
Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9to4 / \ 7 2 / \ / \ 9 6 3 1 解题思想 递归遍历当前节点的左右子树,只要左右子树不为空,>就交换左右子树! 代码实现 public class Solution原创 2016-03-14 22:50:41 · 392 阅读 · 0 评论