摘要:
LFU: least frequently used (LFU) page-replacement algorithm https://leetcode.com/problems/lfu-cache/?tab=Description 题目描述 Design and implement a data 阅读全文
摘要:
/* * * 面试题43:n个骰子的点数 * 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。 * 输入n,打印出s的所有可能的值出现的概率。 * */ #include #include using namespace std; const int max_val = 6; //核心,计算概率 //original为起始值,n个骰子起始值为n //current为当前骰... 阅读全文
摘要:
题目:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 思路:股票交易的利润来自股票买入和卖出价格的差价,so股票的最大利润就是数组中所有数对的最大差价。 阅读全文
摘要:
请从字符串中找出一个最长不含重复字符的子字符串,计算该最长子字符串的长度。例如字符串“arabcacfr”中,最长不含重复字符的子字符串是“acfr”,长度为4。 思路:cur当前最长,max全局最长;hash数组记录字符对应下标;遍历字符串,如果字符对应hash值小于0,说明字符未出现,cur直接 阅读全文
摘要:
题目:在一个m*n的棋盘的每一格都放有一个礼物,每个礼物都有一定价值(>0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格,直到到达棋盘的右下角。给定一个棋盘及其上面的礼物,请你计算你最多能拿到多少价值的礼物? 思路:典型的动态规划,在当前位置的收益等于左边及右边较大收益+加上 阅读全文
摘要:
题目要求: 给定一个数字,按照如下规则翻译成字符串:0翻译成“a”,1翻译成“b”…25翻译成“z”。一个数字有多种翻译可能,例如12258一共有5种,分别是bccfi,bwfi,bczi,mcfi,mzi。实现一个函数,用来计算一个数字有多少种不同的翻译方法。 思路:递归,遍历数字的位,当前位翻译 阅读全文
摘要:
数字按照0123456789101112131415161718192021…的顺序排列。第5位(从0开始计数)为5,第13位为1,第19位为4…… 求任意第n位对应的数字。 思路: 直观方法做枚举。每枚举一个数字的时候,求出该数字是几位数,并把数字的位数和前面的所有数字的位数相加。当累加的数位大于 阅读全文
摘要:
给你一根长度为n的绳子,请把绳子剪成m段 (m和n都是整数,n>1并且m>1)每段绳子的长度记为k[0],k[1],...,k[m].请问k[0]*k[1]*...*k[m]可能的最大乘积是多少? 例如,当绳子的长度为8时,我们把它剪成长度分别为2,3,3的三段,此时得到的最大乘积是18. 解题思路 阅读全文
摘要:
八大排序算法 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速 阅读全文
摘要:
1.二叉树的遍历算法 2、堆排序 循环版本: void siftdown(vector<int>& A, int i, int n) { while (1) { int l = 2 * i + 1; int r = 2 * i + 2; int smallest = i; if (l < n && 阅读全文