剑指offer
因为爱,所以喜欢
一生很长,要和有趣的人在一起
展开
-
数组中出现次数超过一半的数字
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 Java import java.util.Arrays; public class MoreThanHalfNumber { public int MoreTha...原创 2019-03-02 15:57:42 · 93 阅读 · 0 评论 -
活动安排问题 之 贪心算法
贪心算法思想:顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。 活...原创 2019-03-22 13:20:10 · 1453 阅读 · 0 评论 -
字节跳动笔试题一
样例 输入 helllo wooooooow AABBCC 输出: hello wooc AABCC 参考代码 package com.itheima.com; import java.util.Scanner; public class Dem1 { public static void main(String[] args) { Scanner sc = n...原创 2019-03-22 09:55:17 · 2065 阅读 · 0 评论 -
Tri Tiling(hdu1143)
Tri Tiling Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2731Accepted Submission(s): 1547 Problem Description In how many ways can you t...原创 2019-03-21 20:43:47 · 133 阅读 · 0 评论 -
滑动窗口的最大值
题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,...原创 2019-03-19 21:08:18 · 88 阅读 · 0 评论 -
机器人的运动范围
题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子? package com.itheima...原创 2019-03-19 17:10:52 · 140 阅读 · 0 评论 -
第一个只出现一次的字符
题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). import java.util.HashMap; public class Solution { public int FirstNotRepeatingChar(String str) { ...原创 2019-03-04 10:00:41 · 87 阅读 · 0 评论 -
丑数
题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 丑数描述 指包含因子2,3,5的正整数被称作丑数,比如4,10,12都是丑数,而7,23,111则不是丑数,另外1也是丑数。 判断方法 首先除2,直到不能整除为止,然后除5到...原创 2019-03-04 09:13:20 · 666 阅读 · 0 评论 -
整数中1出现的次数(从1到n整数中1出现的次数)
题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。 public class Solution { public...原创 2019-03-03 11:10:20 · 65 阅读 · 0 评论 -
连续子数组最大和
一个整数数组中的元素有正有负,在该数组中找出一个连续子数组, 要求该连续子数组中各元素的和最大,这个连续子数组便被称作最大连续子数组。 比如数组{2,4,-7,5,2,-1,2,-4,3}的最大连续子数组为{5,2,-1,2}, 最大连续子数组的和为5+2-1+2=8。 #include <stdio.h> /* 常规方法,时间复杂度O(n*n)...原创 2018-04-10 00:10:43 · 451 阅读 · 0 评论 -
最小的K个数
题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 基于快速排序的办法 // ====================方法1==================== void GetLeastNumbers_Solution1(int* input, int n, int* output, int k) { ...原创 2019-03-03 09:55:35 · 80 阅读 · 0 评论 -
快速排序(一)
#include <stdio.h> #define MAXSIZE 10000 /* 用于要排序数组个数最大值,可根据需要修改 */ typedef struct { int r[MAXSIZE+1]; /* 用于存储要排序数组,r[0]用作哨兵或临时变量 */ int length; /* 用于记录顺序表的长度 */ }SqList; /* 交换L中数组r的下标为i和...原创 2018-04-13 00:02:00 · 168 阅读 · 0 评论 -
快速排序(二)之优化算法
#include <stdio.h> #define MAXSIZE 10000 /* 用于要排序数组个数最大值,可根据需要修改 */ #define MAX_LENGTH_INSERT_SORT 7 /* 用于快速排序时判断是否选用插入排序阀值 */ #define N 10 typedef struct { int r[MAXSIZE+1]; /* 用于存储要排序数组,r[0...原创 2018-04-13 00:42:40 · 163 阅读 · 0 评论 -
矩阵中的路径
题目 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用下划线标出)。但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二...原创 2019-03-19 12:55:53 · 98 阅读 · 0 评论