编程题
Rabbit_tu
come on~~
展开
-
编程1—求序列的子序列
题目描述:求一个序列的子序列比如 :求字符串abc的子序列为空cbbcaacababc思路分析:对序列每一个字符都有取(1)不取(0)两种可能性。将字符串abc转换为一个字符数组char[] str,那么a就可以用str[0]表示,b可以表示为str[1],c表示为str[2].str[0],str[1].str[2]就都有1,0两种取法package c...原创 2019-03-29 14:30:21 · 1537 阅读 · 0 评论 -
Leedcode—最大数
题目描述:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。示例 1:输入: [10,2]输出: 210示例2:输入: [3,30,34,5,9]输出: 9534330思路:贪心算法,有a和b两个数想组成最大数,只用比较ab和ba即可 假如有abc三个数,找出两两组合最大的,假设是ab>ac>bc,那么三个数就变成了ab和c两个数之间的...原创 2019-04-21 22:18:46 · 210 阅读 · 0 评论 -
Leedcode—反转二叉树(递归和非递归两种)
翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1递归做法: public TreeNode invertTree(TreeNode root) { if(root...原创 2019-04-14 20:36:35 · 1184 阅读 · 0 评论 -
Leedcode—判断一棵树是否是高度平衡的二叉树
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树[3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回true。示例 2:给定二叉树[1,2,2,3,3,null,null...原创 2019-04-29 21:07:14 · 294 阅读 · 0 评论 -
Leecode—求二叉树的最大深度和最小深度
1.给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。/** * Definition for a binary tree ...原创 2019-04-30 21:51:28 · 848 阅读 · 1 评论 -
编程题—序列化和反序列化
题目描述请实现两个函数,分别用来序列化和反序列化二叉树思路:(1)首先我们需要先构建一颗二叉树 构建二叉树的思路:第一步:将数组中的元素封装成TreeNode类型的节点装入nodeList链表中。 第二步:根据二叉树父亲节点与其对应孩纸...原创 2019-05-16 16:45:11 · 520 阅读 · 0 评论 -
编程题—给定位于二维平面上的n个点,求出位于同一条直线上的最大点数
开始拿到这个题的时候,首先就会想到两点确定一条直线,若要判断相应的点是否在同一条直线上,仅需求出它们的斜率即可。但是此题需注意的几点是:(1)当斜率不存在的情况:即(y2-y1)/(x2-x1)中(x2-x1)为0的情况。 (2)当斜率为0的情况:即(y2-y1)为0的情况。 ...原创 2019-05-22 21:04:13 · 1633 阅读 · 0 评论 -
编程题:矩阵中的路径
题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字...原创 2019-05-17 22:10:31 · 452 阅读 · 0 评论 -
编程题—机器人的运动范围
题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?思路分析:(1)首先定义一个flag数组...原创 2019-05-18 15:27:13 · 324 阅读 · 0 评论 -
Leedcode—两个字符串相乘
两个字符串相乘即大数乘法以下给出大数乘法的递归解题思路,以及java中用BigInteger类实现的大数乘法。package com.cll.cn.algorithm;import java.math.BigInteger;/** * 大整数乘法 */public class BigIntegerMul { //生成0 private static Str...原创 2019-04-25 21:55:08 · 572 阅读 · 0 评论 -
Leedcode—机器人走过的路径
一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?说明:m和n的值均不超过 100。示例1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 ...原创 2019-04-09 19:11:39 · 1744 阅读 · 0 评论 -
Leetcode—前k个高频元素
题目元素:给定一个非空的整数数组,返回其中出现频率前k高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的k总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。 你的算法的时间复杂度必须优于 O(nlogn) ...原创 2019-03-29 18:58:06 · 116 阅读 · 0 评论 -
Leedcode—盛最多水的容器
给定n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳...原创 2019-04-03 22:13:02 · 217 阅读 · 0 评论 -
leedcode—最长回文子串
给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"思想:由中心往外扩散-O(n^2)复杂度,比暴力O(N^3)好点(1)首先,将子串分为奇数串和偶数串(所谓的单核和双核)(2)遍历每个字...原创 2019-04-06 20:45:35 · 122 阅读 · 0 评论 -
Leedcode—字符串中的单词数
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: "Hello, my name is John"输出: 5此题较简单,注意审题,单词是指连续的不是空格的字符,即以空格做区分另外还需注意的是判断字符串的最后一个字符是不是空格,如果是空格则初始count值应为0,;如果不是空格则初始count值应...原创 2019-04-10 20:58:00 · 161 阅读 · 0 评论 -
Leedcode—买卖股票的最佳时机(三种不同难度)
121. 买卖股票的最佳时机给定一个数组,它的第i个元素是一支给定股票第i天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利...原创 2019-04-10 22:35:36 · 222 阅读 · 0 评论 -
Leetcode—移掉k位数字
给定一个以字符串表示的非负整数num,移除这个数中的k位数字,使得剩下的数字最小。注意:num的长度小于 10002 且≥k。 num不会包含任何前导零。示例 1 :输入: num = "1432219", k = 3输出: "1219"解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。示例 2 :输入: num = "1...原创 2019-04-07 16:21:35 · 359 阅读 · 0 评论 -
校招题1—幸运子序列
题目描述:牛牛得到一个长度为n的整数序列V,牛牛定义一段连续子序列的幸运值为这段子序列中最大值和次大值的异或值(次大值是严格的次大)。牛牛现在需要求出序列V的所有连续子序列中幸运值最大是多少。输入描述:第一行一个整数n,即序列的长度。(2<= n <= 100000)第二行n个数,依次表示这个序列每个数值V[i], (1 ≤ V[i] ≤ 10^8)且保证V[1]到V[...原创 2019-03-28 22:32:31 · 432 阅读 · 0 评论 -
Leedcode—区域和检索-数组不可变
题目描述:给定一个整数数组 nums,求出数组从索引i到j(i≤j) 范围内元素的总和,包含i, j两点。示例:给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()sumRange(0, 2) -> 1sumRange(2, 5) -> -1sumRange(0, 5) -> -3解题思路...原创 2019-04-02 15:57:58 · 126 阅读 · 0 评论 -
编程题—对链表进行插入排序
思路:新建一个链表, 遍历原链表,将节点插入新链表正确的位置上面/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * ne...原创 2019-06-18 15:57:48 · 436 阅读 · 0 评论