gcd就是欧几里得算法,可以快速的求出俩个数的最大公因数,进而也可以求其最大公倍数(俩数之积除以最大公因数),比较简单直接看代码就好了,一般用递归版,简短精简,敲得快,但如果数剧奇葩,怕溢出,那就用递推版的。 递归版: int gcd(int a,int b) { if(b==0) return a ...
分类:
其他好文 时间:
2016-08-31 18:47:01
阅读次数:
120
257.BinaryTreePathsGivenabinarytree,returnallroot-to-leafpaths.Forexample,giventhefollowingbinarytree:1
/23
5Allroot-to-leafpathsare:["1->2->5","1->3"]思路:1.采用二叉树的后序遍历非递归版2.在叶子节点的时候处理字符串代码如下:/**
*Definitionfora..
分类:
其他好文 时间:
2016-08-07 09:46:18
阅读次数:
130
100.SameTreeGiventwobinarytrees,writeafunctiontocheckiftheyareequalornot.Twobinarytreesareconsideredequaliftheyarestructurallyidenticalandthenodeshavethesamevalue.题目大意:判断两个二叉树是否完全相同。包括他们节点的内容。代码如下:(递归版)/**
*Definitionfor..
分类:
其他好文 时间:
2016-08-07 01:00:06
阅读次数:
193
这个hashheap的实现可以既可以是最大堆,也可以是最小堆,同时因为hash表中存的value是在heap数组中的index和这个key值的数目,所以可以处理重复数字.关键在于siftup和siftdown的非递归实现.siftdown相当于heapify,但是之前只使用过递归版本. ...
分类:
编程语言 时间:
2016-07-08 13:22:37
阅读次数:
182
练习一:用shell脚本写一个简单的进度条代码如下:运行结果如下:练习二:假如一个file文件里面有3个数,求这三个数的最大值,最小值,这三个数的和和平均值。代码如下:file文件里面的内容:运行结果如下:练习三:求1到100的和V1版本:结果如下:V2版本:(递归版本)运行结..
分类:
系统相关 时间:
2016-06-20 01:01:17
阅读次数:
272
题目1:1-100求和非递归版本:#!/bin/bash
sum=0
while[$val-le100]
do
letsum+=val
letval++
done
echo$sum
sum=0
foriin{1..100}
do
if[$i==1];then
bar=${bar}${i}
else
bar=${bar}+${i}
fi
letsum+=i
done
echo$bar=$sum
sum=0
for((i=1;i<=100;i++))
do
..
分类:
系统相关 时间:
2016-06-20 00:54:35
阅读次数:
207
题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
方法一:非递归版
解题思路:
1.核心是中序遍历的非递归算法。
2.修改当前遍历节点与前一遍历节点的指针指向。
import java.util.Stack;
public TreeNode ConvertBSTToBiList(TreeNode r...
分类:
其他好文 时间:
2016-06-12 01:59:34
阅读次数:
125
树 树的题目基本都是二叉树,但是面试官还没有说是不是二叉树的时候千万不要先把答案说出来,要是面试官说是多叉树,而你做的是二叉树就直接挂了! 一. 树的三种遍历。前序、中序、后序,如果直接考遍历,就肯定是让你写非递归代码的(递归版太弱智了),具体写法,要不你记下来,要不参考“递归”部分的,怎么递归转非 ...
分类:
编程语言 时间:
2016-06-09 15:54:51
阅读次数:
215