![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
阻无雨风
这个作者很懒,什么都没留下…
展开
-
查找最小的k 个元素
本文转自:http://blog.csdn.net/wonka438/article/details/7917579排序一、题目:(感谢 http://blog.csdn.net/v_JULY_v 提供的题目)查找最小的k 个元素输入n 个整数,输出其中最小的k 个。例如输入1,2,3,4,5,6,7 和8 这8 个数字,则最小的4 个数字为1,2,3 和4转载 2013-12-10 23:44:44 · 940 阅读 · 0 评论 -
背包问题九讲
本文转自:http://love-oriented.com/pack/ 背包问题九讲version 1.1 build 20071115前言 目录 第一讲 01背包问题第二讲 完全背包问题 第三讲 多重背包问题 第四讲 混合三种背包问题第五讲 二维费用的背包问题第六讲 分组的背包问题第七讲 有依赖的背包问题第八讲 泛化物品 第九讲 背包问题问转载 2013-12-28 12:32:58 · 591 阅读 · 0 评论 -
输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数
本文转自:http://blog.csdn.net/wuzhekai1985/article/details/6728657 问题描述:输入两个整数n和m,从数列1,2.......n中随意取几个数,使其和等于m,要求将其中所有的可能组合列出来。 思路:这个问题其实背包问题的变形,本文给出两种解法。 解法一:用递归,效率可能低了点。假设问题的解为转载 2013-12-24 21:25:20 · 1523 阅读 · 0 评论 -
用最简单, 最快速的方法计算出下面这个圆形是否和正方形相交
本文转自:http://blog.csdn.net/bitzhuxb/article/details/8641636 题目重述(来自面试题):(初稿,未改错别字。)用最简单, 最快速的方法计算出下面这个圆形是否和正方形相交。3D坐标系 原点(0.0,0.0,0.0)圆形:半径r = 3.0圆心o = (*.*, 0.0, *.*)正方形:4个角坐标1:(转载 2013-12-24 23:04:18 · 2562 阅读 · 0 评论 -
输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数
本文转自:http://blog.csdn.net/zz198808/article/details/7566352 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来。 代码:[html] view plaincopyprint?// FindSum.cpp : 定义转载 2013-12-24 21:28:04 · 1071 阅读 · 0 评论 -
约瑟夫环
本文转自:http://blog.csdn.net/lzj509649444/article/details/7056742 题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。分析:我们转载 2013-12-23 22:23:19 · 675 阅读 · 0 评论 -
在一个字符串中找到第一个只出现一次的字符
//通过两个表的建立来完成本程序,int_FreqOfOccurTable标记每个字符的出现次数,int_TimeOfOccurTable标记每个字符的出现时间(最先出现的标记为1,未出现的标记为0) char fun_SearchChar(char* pchar_param_Str){ int int_FreqOfOccurTable[256] = {0} ; int int原创 2013-12-23 12:56:55 · 758 阅读 · 0 评论 -
变态求1+2+3+...+n
本文转自:http://blog.csdn.net/zhangweishuang/article/details/5366134 题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。分析:这道题没有多少实际意义,因为在软件开发中不会有这么变态的限制。但这道题却能有效地考查发散思维能力,而发散思维能转载 2013-12-19 09:36:09 · 1083 阅读 · 0 评论 -
用+,-,移位实现除法运算
本文转自:http://blog.csdn.net/imcdragon/article/details/6850530 如何利用+,-,移位来实现除法.假设求 dividend / divisor方法一:首先想到的是用减法来实现.算法思想:对dividend 循环减 divisor, 减一次res++, 直到刚好减为0或余数小于divisor.[cpp] v转载 2013-12-18 21:22:25 · 1501 阅读 · 0 评论 -
位操作实现四则运算
本文转自:http://www.verydemo.com/demo_c161_i146027.html 1. 题目描述 如何使用位操作分别实现整数的加减乘除四种运算? 2. 解决方案 需要熟练掌握一些常见功能的位操作实现,具体为: 常用的等式:-n = ~(n-1) = ~n+1 获取整数n的二进制中最后一个1:n&(-n) 或者 n&~(n-1),如:n=转载 2013-12-18 16:58:21 · 779 阅读 · 0 评论 -
位操作实现加法
本文转自:http://blog.csdn.net/jacson8408/article/details/7563467 用位操作进行加法运算,主要思想是将加法的计算结果分解为两部分:第一是不考虑进位的运算结果,第二是进位,然后再将这两者相加,即得到结果。详细表述如下:以一位二进制数为例,不考虑进位的情况1+1=01+0=10+1=10+0=0这个过程与使用转载 2013-12-18 18:02:56 · 927 阅读 · 0 评论 -
二叉树前序、中序、后序遍历相互求法
该文章转自:http://www.cr173.com/html/18891_1.html 今天来总结下二叉树前序、中序、后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我们分别说明。首先,我们看看前序、中序、后序遍历的特性: 前序遍历: 1.访问根节点 2.前序遍历转载 2013-12-17 15:02:00 · 630 阅读 · 0 评论 -
数组分割
本文转自:http://blog.csdn.net/Hackbuteer1/article/details/7638305一、题目概述:有一个没有排序,元素个数为2N的正整数数组。要求把它分割为元素个数为N的两个数组,并使两个子数组的和最接近。假设数组A[1..2N]所有元素的和是SUM。模仿动态规划解0-1背包问题的策略,令S(k, i)表示前k个元素中任意i个元素的和的集合。显然:转载 2013-12-30 21:30:27 · 717 阅读 · 0 评论 -
二叉树的建立与遍历
该文章转自:http://www.verydemo.com/demo_c92_i175689.html 二叉树的节点结构为:1 struct NODE2 {3 char ch;4 5 struct NODE *lChild;6 struct NODE *rChild;7 }; 按照前序的顺序递归建立一颗二叉树:转载 2013-12-16 19:48:47 · 887 阅读 · 0 评论 -
01背包初始化的理解
本文转自:http://www.cnblogs.com/lzh-cnblogs/p/3360260.html 前段时间看DP中的01背包问题,大部分内容都好理解,网上也有很多关于这个问题的博客,但自己提出的问题没有得到解决,只好苦思冥想,以求进一步理解。 首先是问题描述:给定n种物品和一背包,物品i的重量是wi,其价值是pi,背包的容量是M,问如何选择装入背包中的物品总价值转载 2013-12-28 12:31:03 · 769 阅读 · 0 评论 -
01背包
本文转自:http://blog.csdn.net/fg2006/article/details/6766384 动态规划的基本思想:将一个问题分解为子问题递归求解,且将中间结果保存以避免重复计算。通常用来求最优解,且最优解的局部也是最优的。求解过程产生多个决策序列,下一步总是依赖上一步的结果,自底向上的求解。动态规划算法可分解成从先到后的4个步骤:1. 描述一个最优解的结转载 2013-12-27 20:34:16 · 744 阅读 · 0 评论