剑指Offer
牛客网上剑指Offer的66道题目的Java实现及原理
望天的无尾熊
好好读书,努力赚钱
展开
-
剑指offer -- 数组中出现次数超过一半的数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路一:如果存在则中位数一定是该值,借鉴快排的思想,查找array.length/2处的值。 public class Solution { public int MoreThan...原创 2018-10-16 16:22:09 · 157 阅读 · 0 评论 -
剑指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]。不能使用除法。 本题通过两次遍历实现: 第一次遍历 B[i] = A[0] * A[1] * …*A[i-1] 第二次遍历 使用temp保存后面部分的乘积,并更新B[i] import java.util.ArrayList; ...原创 2018-08-19 18:42:37 · 245 阅读 · 0 评论