算法
Tuzi294
这个作者很懒,什么都没留下…
展开
-
地图四着色问题
一、介绍 对地图的着色问题,能否用四个颜色对地图着色,要求每个相邻的区域都要着上不同的颜色。二、算法思路例如中国的省份为例,从一个省开始,给它涂上任意一种颜色1,遍历它旁边的省份,涂上与已经涂色并于他相邻的省份不同的颜色就行了。递归求解;在前面的n-1个节点都合法的着色之后,开始对第n个节点着色。这时候枚举可用的4个颜色(4着色),通过和与它相邻的节点的颜色相比较,来判断这个颜色是否合法。找原创 2016-08-28 13:48:36 · 3119 阅读 · 0 评论 -
决策树算法
引、 最近老师布置了课堂展示的作业,主题是决策树,老师还举了买西瓜的决策例子,感觉贴近生活也很有意思。在这之前没有了解过这个概念,通过几个礼拜的学习收获不少。一、 首先,什么是决策树? 百度百科:决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一原创 2016-08-28 13:48:38 · 690 阅读 · 0 评论 -
整数的幂运算 - 快速幂
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。一开始最简单的思路是,用一个while循环直接乘出结果,太简单代码就不贴了,复杂度是O(n)。 发现有更快的算法,叫快速幂,复杂度为O(lgn)。 代码:public class Solution { public double Power(double base, in原创 2016-11-03 19:49:24 · 605 阅读 · 0 评论 -
用两个栈实现一个队列
如题, 思路是一个栈做入队,一个栈做出队。把一个栈全都push到另一个栈里,就实现了逆顺序,就可以当队列使用了。上代码!import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integ原创 2016-10-28 23:51:29 · 401 阅读 · 0 评论 -
跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路: 首先想到的是递归思路,如果只有一层,那么只有一种跳法;两层有两种跳法。三层则可以先跳一层再跳剩下两层,或者先跳两层再跳剩下一层。原创 2016-10-30 14:43:54 · 429 阅读 · 0 评论 -
二叉树中和为某一值的路径
问题描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路: 带条件的深度搜索,从根节点往下 依次减小目标值,如果达到0且该节点是叶子节点,则证明有和为该值的路径。就把这个list添加到最终list中。 如果当前不满足最终条件,则在左子树中找,在右子树中找,最后找不到要回退一到父节点,即remov原创 2016-12-14 21:05:02 · 456 阅读 · 0 评论 -
字符的全排列
问题描述: 输入一串不重复的字符串,输出所有字符的全排列。例如输入“abc” 输出”abc” “acb” “bac” “bca” “cab” “cba” 。思路: 对于输入的字符串,固定其首位,每次让第一位和后面的某一位交换,变成新的字符串,然后对去掉首位的字符串求全排列。如abc ,先固定a,然后求bc的全排列 , 得到abc 和abc 然后交换a和b,得到bac,然后固定b,求ac的全排列原创 2016-11-14 23:55:20 · 497 阅读 · 0 评论 -
一个日期处于该年的第几天 - c语言实现
觉得不同的解法还挺有意思的,就分享一下~问题描述:输入一个日期,格式yyyy-MM-dd,判断这个日期是当年的第几天。建议使用switch。 因为他们还没有学习到函数,就直接写在主函数内部了。思路一、没有使用switch,用了循环,数组存储月份的最大天数,最后累加。#include<stdio.h>int main(){ //闰年的月份 int leapYear[12] = {3原创 2017-04-12 12:43:27 · 1198 阅读 · 0 评论 -
把中文表示的数字转成阿拉伯数字 - java
问题描述: 输入一个中文字符串,使用中文表示的数字形式。如一百,一千万,四千二百万零三十。 输出对应的数字,如100,1000000,42000030。思路: 遇到这个问题一开始觉得挺简单的,用一个字符串和一个数组对应下标就找到数字了,然后一步步累加。 后来发现不太简单,还要考虑如三百二十万这种情况,就是最后一位比前面的数位大,还要乘上去。 在csd原创 2017-04-16 22:55:04 · 4775 阅读 · 2 评论