剑指offer 编程之美
文章平均质量分 51
fengsigaoju
本科:南京邮电大学
座右铭:凤兮凤兮思高举!
展开
-
剑指offer习题---二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序,请完成一个函数,输入这样的二维数组和一个整数,判断该数组中是否存在该整数。 其实质就是一种散列的思想,对于每一列来说,我只需要将待查询的数和每一列第一行(或者每一行第一列)比较,看看其属于某一列(行)然后再在里面进行比较,确定具体位置,当然书上的写法比较有技巧性,将两个步骤合在一起.pub原创 2016-11-25 19:31:59 · 404 阅读 · 0 评论 -
22.栈的压入和弹出序列
给定两个序列A,B,判断按照A的入栈顺序能否得到B的出栈顺序思路比较明确,创建一个栈,当栈为空,或者栈顶元素不是B的目前序列元素(这部分可以用数组或者列表保存),那么就按照A的序列顺序压入下一个数,如果是的话就将这个数出栈。如果A的所有元素已经入栈,但是B的元素还有没有入栈的,那么说明不符合。代码需要注意边界条件:public class twenty { public static原创 2017-02-19 22:14:40 · 333 阅读 · 0 评论 -
42翻转单词
输入一个英文句子,翻转单词顺序,但单词内字符顺序不变,比如输入i am a student. 输出student. a am i分两步,先翻转句子中所有字符,再以空格切割,对于每一个字符串再一次翻转。public class fourty_two { public static void main(String args[]){ Scanner cin=new Scanner(Sy原创 2017-02-19 22:18:43 · 336 阅读 · 0 评论 -
剑指offer中位运算技巧
public class first { public static void main(String args[]){//A是第一列,B是第二列,z是第26列,AB是第27列,输入一串字符串,求是第几列 Scanner cin=new Scanner(System.in); String s=cin.next(); int sum=0; for (int i=0;i<原创 2017-02-04 10:00:01 · 357 阅读 · 0 评论 -
编程之美之寻找发帖水王
简单来说就是求一个数组中出现次数超过一半的次数的数(保证存在),最容易想到的就是先排序,再返回中间位置的值。优化方式就是每次删去两个不相等的数,最后找不到不相等的数,那么最后剩下的数就是这个出现次数超过一半的数。考虑到每次寻找两个不相等的数比较困难,我们可以借助种思想换种写法。用candidate代表当前候选的数,time次数,从头往后遍历,如果出现一次就time+1,不相等就time原创 2017-04-01 15:56:41 · 896 阅读 · 0 评论 -
数组分割
我是不是写过的....记不清了,反正博客没找到,记录一下.dp[i][j]代表:用i个物品装空间为j能否装的下,状态转移方程:dp[i][j]=dp[i-1][j-w[k]](如果dp[i-1][j-w[k]]为真)import java.util.Scanner;public class 数组分割2 { public static void main(String[]原创 2017-04-04 22:19:27 · 952 阅读 · 0 评论