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},则重建二叉树并返回。
     
  • 相关阅读:
    UVA 11174 Stand in a Line,UVA 1436 Counting heaps —— (组合数的好题)
    UVA 1393 Highways,UVA 12075 Counting Triangles —— (组合数,dp)
    【Same Tree】cpp
    【Recover Binary Search Tree】cpp
    【Binary Tree Zigzag Level Order Traversal】cpp
    【Binary Tree Level Order Traversal II 】cpp
    【Binary Tree Level Order Traversal】cpp
    【Binary Tree Post order Traversal】cpp
    【Binary Tree Inorder Traversal】cpp
    【Binary Tree Preorder Traversal】cpp
  • 原文地址:https://www.cnblogs.com/jellyj/p/9867117.html
Copyright © 2011-2022 走看看