- 页 数
- 86页
- 作 者
- 何海涛
- 定 价
- 45.00
- 书 名
- 剑指Offer
- 出版时间
- 2012年1月1日
- 开 本
- 16开
- 出版社
- 电子工业出版社
- ISBN
- 9787121148750
-
剑指offer
2018-08-15 15:09:13剑指Offer_编程题01:二维数组中的查找 剑指Offer_编程题06:旋转数组的最小数字(指针) 剑指Offer_编程题13:调整数组顺序使奇数位于偶数前面 剑指Offer_编程题28:数组中出现次数超过一半的数字 剑指Offer_编程...现对这66道题目进行了粗略的划分,整理如下:
数组(11道):
链表(8道):
必须掌握题型:单链表反转;链表中环的检测;两个有序的链表合并;删除链表倒数第n个结点;求链表的中间结点
栈(3道):
字符串(8道):
其他(15道):
剑指Offer_编程题59:整数中1出现的次数(从1到n整数中1出现的次数)
剑指Offer_编程题46:孩子们的游戏(圆圈中最后剩下的数)_约瑟夫环
递归:
回溯法(2道):
二叉树(12道):
二叉搜索树(3道):
-
剑指Offer
2013-12-19 20:25:39之前立帖挖坑搞定leetcode, 现在再挖一坑, 尝试剑指offer 两者都是针对找工作的应用习题, 特别注重编程算法之类, 但大都考察基础, 重中之重. 主要阵地: http://ac.jobdu.com/hhtproblems.php 已开栏 sword_offer...之前立帖挖坑搞定leetcode, 现在再挖一坑, 尝试剑指offer
两者都是针对找工作的应用习题, 特别注重编程算法之类, 但大都考察基础, 重中之重.
主要阵地:
http://ac.jobdu.com/hhtproblems.php
已开栏 sword_offer
应该时常运用.
-
剑指Offer 第二版 + 剑指Offer 纪念版
2018-02-24 09:38:06剑指Offer 全新第二版 + 剑指Offer 纪念版(添加了英文版新增的面试题) -
剑指offer | 面试题66:构建乘积数组
2020-03-12 13:45:06本文题目和部分解题思路来源自《剑指offer》第二版 开始行动,你已经成功一半了,献给正在奋斗的我们 题目 给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B 中的元素 B[i]=A[0]×A[1]×…×A[i...转载本文章请标明作者和出处
本文出自《Darwin的程序空间》
本文题目和部分解题思路来源自《剑指offer》第二版
开始行动,你已经成功一半了,献给正在奋斗的我们 题目
给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B 中的元素 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法
-
示例
输入: [1,2,3,4,5] 输出: [120,60,40,30,24]
-
提示
所有元素乘积之和不会溢出 32 位整数 a.length <= 100000
解题分析
题目要求不能使用除法,所以你求出所有的数的乘积,然后再除以每个数构结果集的第一想法就流产了;
这道题就是要求结果数组上的每一个数,都是原数组除了这个位置的数的乘积;
以第二个节点为例,其实就是这个当前节点元素所有在原数组左边的元素乘积乘以原数组在这个索引右边的元素乘积;那么我们的做法就是,先把每一个元素的左边的乘积和右边的乘积都算出来,然后新的数组的元素就等于这个元素左边的乘积加上右边的乘积;
如上图中的示例,所有左边的乘积为:
这个数组上所有的位置上的数都是原数组此位置上的书的左边的所有元素的乘积如上图中的示例,所有右边的乘积为:
这个数组上所有的位置上的数都是原数组此位置上的书的右边的所有元素的乘积,最后所求数组即使这两个数据的相同位置索引的乘积构成的新数组;
然后我们使用累乘,少定义两个数组即可完成最优算法;代码
ps:这里笔者使用的jdk为1.8、Python3.7版本
- java实现
class Solution { public int[] constructArr(int[] a) { if (Objects.isNull(a) || a.length == 0) { return new int[]{}; } int[] res = new int[a.length]; int left = 1; for (int i = 0; i < res.length; i++) { res[i] =left; left *= a[i]; } int right = 1; for (int i = res.length - 1; i >= 0; i--) { res[i] *= right; right *= a[i]; } return res; } }
- Python实现
class Solution: def constructArr(self, a: List[int]) -> List[int]: if a is None or len(a) == 0: return [] res = [None] * len(a) left = 1 for i in range(len(a)): res[i] = left left *= a[i] right = 1 for i in reversed(range(len(a))): res[i] *= right right *= a[i] return res
喜欢的朋友可以加我的个人微信,我们一起进步 -
-
剑指Offer——丑数
2016-09-16 18:29:53剑指Offer——丑数前言参照《剑指Offer》,通过洞悉其思想并消化吸收,改为java实现,供自己以后巩固。package cn.edu.ujn.offersword; import java.util.Scanner; public class C5_34_UglyNumber { /** * @...剑指Offer——丑数
前言
参照《剑指Offer》,通过洞悉其思想并消化吸收,改为java实现,供自己以后巩固。
package cn.edu.ujn.offersword; import java.util.Scanner; public class C5_34_UglyNumber { /** * @date 2016-09-16 * @number 01 * @author SHQ * 丑数 * 题目描述 *把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 * 思路 *空间换时间 *根据丑数的定义,丑数应该是另一个丑数乘以2,3,或5所得(1除外)。故非丑数不在计算范围之内。额外创建一个数组,用于存放已确定的丑数。 *通过设置3个变量,用于标记第一个大于最大丑数的位置,并将3个变量中的最小丑数作为下一个丑数。 同时避免重复计算。 * 空间复杂度O(n); */ public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNextInt()){ int index = in.nextInt(); System.out.println(GetUglyNumber_Solution2(index)); } } // 超时 private static int GetUglyNumber_Solution(int index) { if(index <= 0){ return 0; } int cnt = 0; int number = 1; while(cnt < index){ if(isUgly(number)){ cnt++; } number++; } return number; } private static boolean isUgly(int num){ while(num % 2 == 0) num /= 2; while(num % 3 == 0) num /= 3; while(num % 5 == 0) num /= 5; return num == 1 ? true : false; } private static int GetUglyNumber_Solution2(int index) { if(index <= 0){ return 0; } int [] arr = new int [index]; arr[0] = 1; int index2 = 0, index3 = 0, index5 = 0, nextIndex = 1; while(nextIndex < index){ System.out.print(arr[nextIndex-1] + " "); int min = min(arr[index2]*2, arr[index3]*3, arr[index5]*5); arr[nextIndex] = min; while(arr[index2] * 2 <= arr[nextIndex]) index2++; while(arr[index3] * 3 <= arr[nextIndex]) index3++; while(arr[index5] * 5 <= arr[nextIndex]) index5++; nextIndex++; } return arr[nextIndex-1]; } private static int min(int a, int b, int c){ int min = (a > b) ? b : a; return min > c ? c : min; } }
美文美图
-
剑指Offer 最新版
2017-09-11 10:38:48剑指Offer剑指Offer剑指Offer剑指Offer剑指Offer剑指Offer剑指Offer剑指Offer剑指Offer剑指Offer -
剑指Offer——动态规划算法
2016-08-03 15:24:27剑指Offer——动态规划算法什么是动态规划? 和分治法一样,动态规划(dynamicprogramming)是通过组合子问题而解决整个问题的解。 分治法是将问题划分成一些独立的子问题,递归地求解各子问题,然后合并子问题的解... -
剑指Offer——二叉树
2016-08-07 16:29:10剑指Offer——二叉树前言 数据结构通常是编程面试中考察的重点。在参加面试之前,应聘者需要熟练掌握链表、树、栈、队列和哈希表等数据结构,以及它们的操作。本片博文主要讲解二叉树操作的相关知识,主要包括二叉树... -
剑指Offer——回溯算法
2016-08-07 16:03:27剑指Offer——回溯算法什么是回溯法 回溯法实际是穷举算法,按问题某种变化趋势穷举下去,如某状态的变化用完还没有得到最优解,则返回上一种状态继续穷举。回溯法有“通用的解题法”之称,其采用了一种“走不通就... -
剑指Offer——银行考试
2016-08-31 09:09:09剑指Offer——银行考试网申简历一、 银行网申简历主要看哪些方面?1、职业形象(30%),基本体现为证件照;2、学校+成绩+校内表现(40%),体现为证书,成绩排名以及任职经历等;3、校外实践(20%),主要体现在工作... -
剑指Offer——分治算法
2016-09-04 10:00:56剑指Offer——分治算法基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题... -
剑指offer | 面试题23:链表中环的入口结点
2020-02-18 00:52:17本文题目和部分解题思路来源自《剑指offer》第二版 开始行动,你已经成功一半了,献给正在奋斗的我们 题目 一个链表中包含环,如何找出环的入口结点?如下图,环的入口节点是3 解题分析 这道题,首选用我们程序员... -
剑指Offer——Trie树(字典树)
2016-09-07 21:21:30剑指Offer——Trie树(字典树)Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频... -
剑指Offer——全排列递归思路
2016-08-09 21:54:44剑指Offer——全排列递归思路前言 全排列,full permutation, 可以利用二叉树的遍历实现。二叉树的递归遍历,前中后都简洁的难以置信,但是都有一个共同特点,那就是一个函数里包含两次自身调用。所以,如果一个递归... -
剑指 Offer 总结 - leetcode 剑指offer系列
2020-08-31 18:48:51剑指 Offer 系列完结撒花!! ???????? 本篇文章是对整个系列的精华总结, 对系列的每篇文章进行了分类, 并用一句话概括每道题的思路, 方便大家理解和记忆, 当然也包含原文完整链接供大家参考 总的来说, 写这个系列... -
剑指Offer——常用SQL语句、存储过程和函数
2016-11-08 11:08:42剑指Offer——常用SQL语句、存储过程和函数常用SQL语句1.在MySQL数据库建立多对多的数据表关系2.授权、取消授权grant、revokegrant select, insert, update, delete on testdb.* to common_user@’%’; revoke all ... -
剑指offer笔记
2020-07-29 20:53:32文章目录题目概览剑指 Offer 03 数组中重复的数字剑指 Offer 23 链表中的环(三道题目) 题目概览 来自leetcode,数据截止至2020.08 题号 名称 题解 通过率 难度 剑指 Offer 03 数组中重复的数字 1037 ... -
剑指offer索引
2019-09-16 16:19:27剑指offer:构建乘积数组 剑指offer:树中两个节点的最低公共祖先 剑指offer:把字符串转换成整数 剑指offer:不用加减乘除做加法 剑指offer:求 1+2+3+...+n 剑指offer:股票的最大利润 剑指offer:圆圈中... -
剑指Offer——二分查找算法
2016-08-03 11:50:13剑指Offer——二分查找算法前言 本片博文主要讲解查找算法的相关知识。重点介绍二分查找。 二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟... -
剑指Offer 目录
2019-10-01 20:16:25再做一遍剑指Offer, 以前做完了有很多好的思路都忘记了 也有些以前就没弄懂的问题 争取一波带走! 剑指Offer01 杨氏数组寻值 剑指Offer02 替换空格 剑指Offer03 逆序输出链表&链表逆序 剑指Offer04 重建... -
javascript剑指offer刷题
2020-09-01 20:35:55文章目录剑指 Offer 03. 数组中重复的数字剑指 Offer 04. 二维数组中的查找剑指 Offer 05. 替换空格剑指 Offer 06. 从尾到头打印链表剑指 Offer 09. 用两个栈实现队列剑指 Offer 10- I. 斐波那契数列剑指 Offer 17. ... -
剑指Offer题解汇总
2020-08-17 22:28:40剑指 Offer 03 数组中重复的数字 数组 哈希表 剑指 Offer 04 二维数组中的查找 数组 线性查找 剑指 Offer 05 替换空格 剑指 Offer 06 从尾到头打印链表 剑指 Offer 07 重建二叉树 剑指 Offer 09 用两个... -
leetcode 打印_剑指 Offer 总结 leetcode 剑指offer系列
2020-11-24 12:10:58点击专辑上方“蓝字”关注我吧剑指 Offer 系列完结撒花!! ??本篇文章是对整个系列的精华总结, 对系列的每篇文章进行了分类, 并用一句话概括每道题的思路, 方便大家理解和记忆, 当然也包含原文完整链接供大家参考总的... -
剑指OFFER
2012-09-25 16:07:20我今天在此开通我的CSDN首篇博客,以后在此博客上发表自己的一些观点看法。向各位大神学习交流,请不吝赐教。 本人最近会大量更新博客,在今年的招聘高潮即将到来之际,为大家提供面试官最看重的简单实用的面试题... -
剑指Offer——知识点储备-设计模式
2016-11-07 15:58:32剑指Offer——知识点储备-设计模式设计模式设计模式的六大原则 (1)单一职责原则(有且仅有一个原因引起类的变化); (2)里氏替换(任何父类出现的地方子类都可以替换); (3)依赖倒置(依赖抽象而不是依赖具体... -
剑指Offer目录
2018-09-08 23:29:54剑指Offer01~赋值运算符函数 剑指Offer02~单例设计模式 剑指Offer03~数组中重复的数字 剑指Offer04~ 二维数组中查找目标值 剑指Offer05~替换字符串中的空格 剑指Offer06~ 从尾到头打印链表(用栈的思想实现链表... -
剑指Offer——知识点储备-JVM基础
2016-11-01 12:29:00剑指Offer——知识点储备-JVM基础1、java内存与内存溢出1.1 JVM分为哪些区,每一个区干嘛的?(见java虚拟机38页) (1)程序计数器(线程私有) 当前线程执行字节码的信号指示器。(每个线程都会在程序计数器中... -
剑指offer刷题顺序
2020-12-27 14:17:04【剑指Offer】1、二维数组中的查找 【剑指Offer】6、旋转数组的最小数字 【剑指Offer】13、调整数组顺序使奇数位于偶数前面 【剑指Offer】19、顺时针打印矩阵 【剑指Offer】28、数组中出现次数超过一半的数字 ...
-
简谈FPGA研发设计相关规范(企业中初入职场很实用)
-
个人总结的408往年题目知识点分布
-
能计算3000多位十进制数乘法的C++小程序
-
IPC/JEDEC-J-STD-035:非密封电子元件的声学显微镜法-英文完整版(17页)
-
前端性能优化
-
【数据分析-随到随学】Tableau数据分 析+PowerBI
-
第3章 入门程序、常量、变量
-
21年新接口自动化测试视频postman教程 零基础接口测试
-
【数据分析-随到随学】Hive详解
-
Leetcode 31. Next Permutation
-
为什么PHP在很多公司遭到弃用?
-
8、信息学奥赛系列课程之NOI LINUX课程表01.pdf
-
智联万物,京东IoT技术创新与实践
-
Python编写小型购物车程序
-
多线程
-
【数据分析实战训练营】Hive详解
-
FPGA 之 SOPC 系列 汇总篇
-
C#文件传输、Socket通信、大文件断点续传
-
js数组问题 大佬们救救我
-
2020牛客暑期多校集训营第六场题解.pdf