zoukankan      html  css  js  c++  java
  • leetcode/牛客网刷题笔记

    题目描述

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
     
    输入:
    1 2 8 9 
    2 4 9 12 
    4 7 10 13
    6 8 11 15
    7
    输出:
    true
    思路:从左小角开始遍历,第一次遍历到刚好大于target的下标,然后往上遍历,如果有返回,如果没有,遍历下一列。
     

    public class Solution {
    public boolean Find(int target, int [][] array) {
    int flag = 0;
    int row = array.length-1;
    int col = array[0].length;
    int j = 0;
    //从左下角开始遍历,寻找大于target的下标
    //遍历列方向
    while(j < col){
    int i = row;
    if(array[i][j] == target) return true;
    else if(array[i][j] > target) //如果array最后一行元素大于target,遍历这一列
    {
    while( i >= 0){
    if(array[i][j] == target ) return true;
    i--;
    }
    }
    j++;
    }
    return false;
    }
    }

    总结:自己真是菜,这么简单,写了20分钟,太久没摸这些题了,慢慢来。 2018/10/29

    ====================================

    题目描述

    请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
     
    直接就自带的两个函数完事,StringBuffer.toString, String.repalce(str1,str2)

    public class Solution {
    public String replaceSpace(StringBuffer str) {
    String str1 = str.toString();
    String str2 = str1.replace(" ","%20");
    return str2;
    }
    }

    ======================================

    输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

    思路,遍历传入的头节点存入temp,然后反取

    /**
    *    public class ListNode {
    *        int val;
    *        ListNode next = null;
    *
    *        ListNode(int val) {
    *            this.val = val;
    *        }
    *    }
    *
    */
    import java.util.ArrayList;
    public class Solution {
        public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
            //返回一个ArrayList
            ArrayList<Integer> result = new ArrayList<Integer>();
            ArrayList<Integer> temp = new ArrayList<Integer>();
            ListNode tempNode = listNode;
            while(tempNode != null){
                temp.add(tempNode.val);
                tempNode = tempNode.next;
            }
            for(int i = temp.size() - 1 ; i>=0 ; i--){
                result.add(temp.get(i));
            }
            return result;
              
        }
    }

    ===========================================

    题目描述

    输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
     
  • 相关阅读:
    开发报表的先进工具
    强大的报表前端展现功能
    管理驾驶舱监控大屏展现
    换乘算法【转】
    提交中文数据乱码问题总结
    重定向
    容易遗漏的
    jsp基础语法【转】
    说说Java NIO【转】
    Java读取大文件的操作【转】
  • 原文地址:https://www.cnblogs.com/jellyj/p/9867117.html
Copyright © 2011-2022 走看看