
面试编程题目
phoenix_xqq
已经不写代码很多年。
展开
-
153. 寻找旋转排序数组中的最小值
https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/class Solution { public int findMin(int[] nums) { for(int i = 1; i< nums.length; ++i) { if(nums[i] < nums[i - 1]) return nums[i.原创 2020-07-25 14:44:52 · 91 阅读 · 0 评论 -
被围绕的区域
https://leetcode-cn.com/problems/surrounded-regions/给定一个二维的矩阵,包含 'X' 和 'O'(字母 O)。找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 'O' 都不会被填充为转载 2020-07-23 22:26:37 · 224 阅读 · 0 评论 -
784. 字母大小写全排列
给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。示例:输入: S = "a1b2"输出: ["a1b2", "a1B2", "A1b2", "A1B2"]输入: S = "3z4"输出: ["3z4", "3Z4"]输入: S = "12345"输出: ["12345"]class Solution { private List<String> list = new ArrayList<原创 2020-07-23 21:52:11 · 790 阅读 · 0 评论 -
1254. 统计封闭岛屿的数目
有一个二维矩阵 grid ,每个位置要么是陆地(记号为 0 )要么是水域(记号为 1 )。我们从一块陆地出发,每次可以往上下左右 4 个方向相邻区域走,能走到的所有陆地区域,我们将其称为一座「岛屿」。如果一座岛屿 完全 由水域包围,即陆地边缘上下左右所有相邻区域都是水域,那么我们将其称为 「封闭岛屿」。请返回封闭岛屿的数目。链接:https://leetcode-cn.com/problems/number-of-closed-islandsclass Solution {原创 2020-07-23 16:51:19 · 162 阅读 · 0 评论 -
64. 最小路径和
给定一个包含非负整数的 mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。对于不在第一行和第一列的元素,可以从其上方相邻元素向下移动一步到达,或者从其左方相邻元素向右移动一步到达,元素对应的最小路径和等于其上方相邻元素与其左方相邻元素两者对应的最小路径和中的最小值加上当前元素的值。...原创 2020-07-23 16:42:46 · 92 阅读 · 0 评论 -
用两个栈实现队列
class CQueue { Stack<Integer> stack1; Stack<Integer> stack2; public CQueue() { stack1 = new Stack<>(); stack2 = new Stack<>(); } public void appendTail(int value) { stack1.push(val.原创 2020-07-21 10:07:28 · 124 阅读 · 0 评论 -
22. 括号生成
https://leetcode-cn.com/problems/generate-parentheses/submissions/输入:n = 3输出:[ "((()))", "(()())", "(())()", "()(())", "()()()" ]class Solution { private List<String> res = new ArrayList<>(); ...原创 2020-07-20 18:08:42 · 110 阅读 · 0 评论 -
191. 位1的个数
题目:https://leetcode-cn.com/problems/number-of-1-bits/public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { int count = 0; while (n != 0) { count += n & 1;原创 2020-07-20 17:48:49 · 108 阅读 · 0 评论 -
300. 最长上升子序列
https://leetcode-cn.com/problems/longest-increasing-subsequence/class Solution { public int lengthOfLIS(int[] nums) { int[] dp = new int[nums.length]; // base case:dp 数组全都初始化为 1 Arrays.fill(dp, 1); for原创 2020-07-20 17:41:57 · 95 阅读 · 0 评论 -
最大子序和
https://leetcode-cn.com/problems/maximum-subarray/给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。定义 dp[i] 为以 i 结尾子串的最大值dp[i]= max(dp[i-1] + a[i], a[i])class Solution { public int maxSubArray(int[] nums) { int[] dp=new int[nums.leng原创 2020-07-19 09:51:44 · 113 阅读 · 0 评论 -
树的高度
int deep(TreeNode pRoot) { if(pRoot==null) return 0; int left=deep(pRoot.left); int right=deep(pRoot.right); return (left>right)?left+1:right+1; }原创 2020-07-18 22:58:12 · 199 阅读 · 0 评论 -
剪绳子
给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n > 1并且m > 1),每段绳子的长度记为 k[0],k[1], ... ,k[m] 。请问 k[0] * k[1] *... * k[m] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。样例示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例2:输入: 10输出: 36解释: 10 = 3 + .原创 2020-07-18 22:54:52 · 139 阅读 · 0 评论 -
最大递减数
给出一个正整数,找到这个正整数中包含的最大递减数。一个数字的递减数是指相邻的数位从大到小排列的数字。如:95345323,递减数有:953,95,53,53,532,32,那么最大的递减数为953。//最大递减数 @Test public void desc(){ String numbers="95345323"; int bigDesc=Integer.valueOf(numbers.charAt(0)+""); int curr..原创 2020-07-18 20:11:37 · 404 阅读 · 0 评论 -
字符串里寻找另一个串出现的次数和第一次出现的位置。
//字符串里寻找另一个串出现的次数和第一次出现的位置。 @Test public void findSubString(){ String s="IloveJavaloveC++lovePython"; String temp="love"; int index=s.indexOf(temp); int counts=0; if(index!=-1){ System.out.printl.原创 2020-07-18 18:55:26 · 375 阅读 · 0 评论 -
算法-数组拆分为奇偶两部分
仅用O(1)的空间,将整数数组按奇偶数分成2部分,数组左边是奇数、右边是偶数。(要求:给出完整代码,尽量高效,简洁)思路:1. 从左往右找偶数,遇到奇数就继续往右(即遇到奇数执行操作:low++),找到偶数就停止,结果是找到第一个偶数2. 从右往左找奇数,遇到偶数就继续往左(即遇到偶数执行操作: high–),直到找到第一个奇数public class Main { public static void main(String[] args) { int[] sz= {2,3,5,22.转载 2020-07-18 17:20:47 · 2461 阅读 · 0 评论 -
给定一个字符串str,求其中全部整数数字之和
参考 https://blog.youkuaiyun.com/duoduo18up/article/details/82193122 public static void main(String[] args) { Scanner scan = new Scanner(System.in); String line = scan.nextLine(); Stack stack=new Stack(); int result=0;原创 2020-05-25 12:09:42 · 2747 阅读 · 0 评论 -
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。//平衡二叉树是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树public class Solution { public boolean IsBalanced_Solution(TreeNode root) { if(root==null) return true;...原创 2020-03-10 19:36:44 · 245 阅读 · 0 评论 -
94. 二叉树的中序遍历
题目链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/迭代解决/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode ...原创 2020-02-20 16:03:47 · 107 阅读 · 0 评论 -
面试题64. 求1+2+…+n
题目链接:https://leetcode-cn.com/problems/qiu-12n-lcof/求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000...原创 2020-02-18 22:38:59 · 145 阅读 · 0 评论 -
面试题06. 从尾到头打印链表
题目链接:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof//** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNo...原创 2020-02-18 22:21:55 · 146 阅读 · 0 评论 -
面试题04. 二维数组中的查找
题目来源:https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1,...原创 2020-02-18 22:00:14 · 115 阅读 · 0 评论