专题总结7-高频题high frequency

Outline
1. Single Number I, II, III
2. Majority Number I, II, III
3. Best Time to Buy and Sale Stock I, II, II
4. Subarray I, II, III, IV
5. 2-Sum, 3-Sum, 4-Sum, k-Sum, 3-Sum Closest
6. Partition Array
7. Quick Questions 

  方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。

  例:将十进制的(43)D转换为二进制的步骤如下:

1. 将商43除以2,商21余数为1;

2. 将商21除以2,商10余数为1;

3. 将商10除以2,商5余数为0;

4. 将商5除以2,商2余数为1;

5. 将商2除以2,商1余数为0;

6. 将商1除以2,商0余数为1;

7. 读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,101011,即(43)D=(101011)B。

(Figure:图解十进制 → 二进制)

时间: 2024-10-09 20:50:46

专题总结7-高频题high frequency的相关文章

【常用算法思路分析系列】字符串高频题集

本文是[常用算法思路分析系列]的第二篇,分析字符串相关的高频题目.第一篇是关于排序相关的高频题,还没有看的同学请移步:[常用算法思路分析系列]排序高频题集 1.KMP字符匹配 对于两棵彼此独立的二叉树A和B,请编写一个高效算法,检查A中是否存在一棵子树与B树的拓扑结构完全相同,即给定两棵二叉树的头结点A和B,请返回一个boolean值,代表A中是否存在一棵同构于B的子树.上述其实就是一个字符匹配的问题,我们将A.B两棵二叉树进行遍历,得到一个字符串,就是判断B串是否是A串的子串.而字符匹配常用的

【常用算法思路分析系列】与二分搜索相关高频题

本文是[常用算法思路分析系列]的第五篇,总结二分搜索相关的高频题目和解题思路.本文分析如下几个问题:1.求数组局部最小值问题:2.元素最左出现的位置:3.循环有序数组求最小值:4.最左原位:5.完全二叉树计算结点数:6.快速N次方. 本系列前四篇导航: [常用算法思路分析系列]排序高频题集 [常用算法思路分析系列]字符串高频题集 [常用算法思路分析系列]栈和队列高频题集(修改版) [常用算法思路分析系列]链表相关高频题集 二分搜索的重要提醒: 一般我们选择中点进行搜索,会写成mid = (lef

【常用算法思路分析系列】栈和队列高频题集(修改版)

本文是[常用算法思路分析系列]的第三篇,分析栈和队列相关的高频题目.本文分析:1.可查询最值的栈:2.用两个栈实现队列的功能:3.反转栈中元素:4.排序栈中元素:5.滑动窗口问题. 本系列前两篇导航: [常用算法思路分析系列]排序高频题集 [常用算法思路分析系列]字符串高频题集 1.可查询最值的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 思路: 定义两个栈stackData和stackMin,其中stackData用来存放进栈的数据,stackMin用来存放进栈过

关于C/C++中的内存泄漏——程序员面试高频题

前几天面试多益网络的时候,面试官就问到了C/C++中的内存泄露问题.这也是很多公司面试时候的高频题,好吧,那就来学习下吧~ 到底什么是内存泄漏?是什么导致了内存泄漏?如何避免?又如何检测呢? 1)什么是内存泄漏? 简单来讲,内存泄露是指程序中一块不再使用的内存没有被释放,造成内存保持占用状态,使操作系统不能将内存分配给其它的程序(进程).内存泄露不是一个立即会引发故障的错误,但是它将消耗系统内存. 2) 什么导致了内存泄漏? 通过定义很明显的,我们用malloc/new申请的内存块,再利用完之后

【常用算法思路分析系列】链表相关高频题集

本文是[常用算法思路分析系列]的第四篇,总结链表相关的高频题目和解题思路.本文分析如下几个问题:1.环形链表的差值问题:2.只能访问单个结点的删除问题:3.链表的分化:4.打印两个链表的公共部分:5.把链表的每k个结点逆序:6.删除链表中指定结点:7.判断链表是否为回文结构:8.复杂链表的复制:9.判断链表是否有环:10.判断两个无环链表是否相交:11.判断两个有环链表是否相交:12.判断两个链表(状态未定)是否相交. 本系列前三篇导航: [常用算法思路分析系列]排序高频题集 [常用算法思路分析

iOS开发面试高频题

iOS开发面试高频题,面试不再懵逼 目录 前端技术2016年5月4日 对于要面试iOS开发的同学,可能已经看了很多的面试题.但是网上很多的面试题有些很全,但是没有重点,有些又太少.今天小编给大家整理了一些比较重要和经常问的面试题,总共20个,半小时之内就可以看完. 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;

【常用算法思路分析系列】排序高频题集

最近在牛客上整理常用的一些算法思路,[常用算法思路分析系列]主要是针对一些高频算法笔试.面试题目的解题思路进行总结,大部分也给出了具体的代码实现,本篇文章是对排序相关题目的思路分析. 1.简单分类 首先对一些常用算法按空间复杂度进行分类如下: O(1): 冒泡排序.选择排序.插入排序.希尔排序.堆排序 O(logN)~O(N): 快速排序 O(N): 归并排序 O(M): 计数排序.基数排序 2.对一个基本有序的有序的数组排序,选择哪种排序算法? 基本有序:指如果把数组排好序的话,每个元素移动的

Java面试高频题精选300道,一份通往阿里的必备指南(pdf文档)

就目前大环境来看,跳槽成功的难度比往年高很多.一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底. 最近我整理了一份复习用的面试题及面试高频的考点题及技术点梳理成一份“Java工程师高频面试体系.pdf和一份网上搜集的“Java核心知识点体系文档.pdf”(实际上比预期多花了不少精力),包含集合,JVM,并发编程.Spring,MyBatis,微服务,Redis,Dubbo,设计模式,数据结构,分布式等!,由于篇幅有限,为了方便大家观看,这里以图片的形式给大家展示每部

专题三 第十一题

1.题目编号:1001 2.简单题意:给一个序列a[1],a[2]...a[n],计算该序列的最长子序列的最大值,但是如果有超过一个子序列的,选择第一个子序列. 3.解题思路形成过程:看到这个题,就是用动态规划求最大子序列,开始用的方法一直超时,嵩哥说我写的太麻烦,应该用老师上课讲的,输入的n个数相加放在一个sum数组里面,如果sum[i-1]+a[i]的值为负的就将sum[i]=a[i],否则与a[i]相加之后放入sum[i]中,另外这个题需要记录字段的开始位置和结束位置,可以用个tag数组将