根据楼楼参加笔试或者面试的经验而言,寻找最大的K个数这个问题,被问到已经不只两三次了,所以楼楼决定认认真真地把这个问题写一下,解法思想参照《编程之美》一书。 题目简介 有很多无序的数,我们姑且假定他们各不相等,怎么选出其…
分类:编程之美
【编程之美】读书笔记:求二进制数中1的个数
问题:求二进制中1的个数。对于一个字节(8bit)的无符号整型变量,求其二进制表示中”1″的个数,要求算法的执行效率尽可能的高。…
编程之美——中国象棋将帅问题
A表示“将”,B表示“帅”。用1~9表示A、B的坐标。 请写出一个程序,输出A、B所有合法位置。要求在代码中只能使用一个字节存储变量。 解法一: 用一个unsigned char类型变量存储A、B的位置,前4bit表示A…
编程之美2.9fibonacci数列method3
#include<iostream> #include<fstream> using namespace std; typedef pair<int,int> Point; templ…
IOS的storyboard编程之 TableView
在storyboard中,TableViewCell既可以从一个TableViewController里面得到,也可以在一个通用的ViewController里面,通过拉相应的tableView来得到。现在分两种情况讨论…
python-编程之美
1.2象棋游戏 思路:A、B分别为将和帅,只能在3*3的格子里上下左右移动,不能斜着移动,找出A、B可能的位置可能,即A和B不在一列即可,题目要求只能适用一个字节存储变量,我们假设有一个两位的十进制数,个位存储B的位置信…
【编程之美】数组分割问题
一,问题: 1. 有一个无序、元素个数为2n的正整数数组,要求:如何能把这个数组分割为两个子数组,子数组的元素个数不限,并使两个子数组之和最接近。 2. 有一个无序、元素个数为2n的正整数数组,要求:如何能把这个数组分割…
编程之美--3.2电话号码对应英文单词
思路 1 对于第一个方法,为什么用数组不用其他存储形式,比如链表?因为用数组很多查找一次就可以完成。 2 对于递归方法,就是DFS。所以递归相对来说还比循环好写。但是循环方式的思路是很不错的。从最后一个字符开始变化,如果…
编程之美 - 寻找合适的数字
问题描述: 给一个整数N,求一个整数M,使M*N 的十进制结果中只有 1 和 0。 问题分析: 问题从结果入手,十进制表示只有 1 和 0,这个数字的集合有规律,例如: 1,10,11,100,101,110,111…
编程之美: 第一章 1.16 24点游戏
/* 24点游戏: 给玩家4张牌,每张牌的面值在1~13之间,允许其中有数值相同的牌。采用加减乘除,允许中间运算存在小数,并且可以使用括号,但每张牌只能使用一次,尝试 构造表达式,使其运算结果为24. 输入:n1,n2,…
编程之美数组分割问题
假设数组A[1..2N]所有元素的和是SUM。 模仿动态规划解0-1背包问题的策略,令S(k, i)表示前k个元素中任意i个元素的和的集合。 显然: S(k, 1) = {A[i] | 1<= i <= k}…
编程之美 - 数组最长子序列
问题描述: 求一个一维数组的最长递增子序列,时间复杂度尽可能小。 例如:数组 1, -1,2,-3,4,-5,6,-7它的最长递增子序列是 1,2,4,6。 思路: 创建一个数组,用于记录到它为止递增元素的最大个数。 从…