剑指offer
周末饺子配啤酒
每天进步一点点
展开
-
剑指offer习题记录二
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。解题思路此题可以用递归解决,问题可以分解为:1、首先固定第一个字符2、对剩下的字符进行全排列3、将固定的字符分别与已经求出全排列的字符串进行每位交换程序代码package co...原创 2018-06-12 20:08:19 · 122 阅读 · 0 评论 -
剑指offer(寻找最小数)
题目输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。则打印出这三个数字能排成的最小数字为321323。思路 * 1、此采用递归实现数组的全排列,拼接每组全排列成为新的数字保存至数组 * 2、比较每组数字,输出最小值实验代码package com.offer;import java.util.ArrayList;imp...原创 2018-07-07 13:24:55 · 201 阅读 · 0 评论 -
剑指offer(丑数)
题目 把只包含因子2、3和5的数称作丑数(Ugly Number)。 例如6、8都是丑数,但14不是,因为它包含因子7 求按从小到大的顺序的第N个丑数。 * 思路: * 1、数字因式分解 * a、寻找1-n的质数 * b、因式分解 * 2、判断是否是丑数思路 1、数字因式分解 a、寻找1-n的质数 b、因式分解 2、判断是否是丑数 3、按照...原创 2018-07-07 15:55:01 · 271 阅读 · 0 评论 -
剑指offer---把数组排成最小的数
题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字排成的最小数字为321323。解题思路1、将数组转化为字符串数组2、当str1+str2>str2+str1时将str1插入到str2后面3、对整个字符串数组做相同操作对于python2.x的版本可以直接使用so...原创 2018-08-25 17:23:32 · 167 阅读 · 0 评论 -
剑指offer-(第一个只出现一次的字符)
题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).解题思路:1、采用字典存储字符和出现的次数2、将字典存入list中3、遍历列表找value值中为1的在原字符串中找到其索引代码实现class Solution: def FirstNot...原创 2018-08-25 22:12:44 · 136 阅读 · 0 评论