![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
ShilohLin
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 15. 二进制中1的个数
题目一开始我都没看明白,输入到底是二进制串还是十进制整数,后来分析明白了才知道输入的是十进制整数,题目描述的有点不清晰,最后还专门给了个误导人的提示,害。去百度参考了一下十进制转二进制的方法,选择了用移位来完成。原文链接在这里:https://www.cnblogs.com/vsign/p/7290594.htmlpublic class Solution { // you need to treat n as an unsigned value public int hammingW.原创 2021-07-31 18:43:45 · 82 阅读 · 0 评论 -
剑指 Offer 11. 旋转数组的最小数字
今天的另一道题部分通过,找bug中,就先放一道简单题。 其实讲道理,按题上描述,要找旋转数组的最小值,直接输出最小值就可以了。但总觉得算是钻了这道题的空子,所以没这么做。我是找第一个比前面数字小的数进行返回,即找到旋转数组的后半部分的头,因为题目说明了是递增数组,那么第一个比前面数字大的数必定是原数组的头,即最小数。若没有找到比前面数字小的数,即说明原数组未发生旋转,返回原数组的头即可。class Solution { public int minArray(int[] numbers) {原创 2021-07-28 22:26:38 · 72 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
class Solution { public boolean findNumberIn2DArray(int[][] matrix, int target) { //从右上角来看,二叉树 int i,j; for(i=matrix.length-1,j=0;i>=0 && j<matrix[0].length;){ if (target==matrix[i][j]){ .原创 2021-07-25 18:47:02 · 65 阅读 · 0 评论 -
1893. 检查是否区域内所有整数都被覆盖
判断left,right是否在区间内,若在的话,将left的值用区间最右端的数加一覆盖,right的值用区间最左端的数减一覆盖,若有right<left,则表示left和right相遇,left和right之间的数均包含在所给区间内,返回true。若区间遍历结束仍未相遇,则返回false。代码如下:class Solution { public boolean isCovered(int[][] ranges, int left, int right) { int l=l.原创 2021-07-23 22:02:03 · 48 阅读 · 0 评论 -
剑指 Offer 47. 礼物的最大价值
分析:首先抛弃掉递归方法,因为指定会出现超时的问题,所以考虑动态规划,为节省空间,不再开辟新的二维数组,直接在原有数组上进行数值更改,缺点是原有数组会被破坏。状态转移方程分析:-1- i=0,j=0时 起点,必经过,不必考虑路径问题-2- i或j一个为0 时,因为规定了只能向下,或向右进行。所以矩阵的最左一列(只能连续向下行进),最上一行(只能连续向右行进)内的价值可以先确定下来。-3- 除去最左最上的行和列后,grid[i][j] += Math.max(grid[i][j - 1], gri.原创 2021-07-23 00:06:56 · 82 阅读 · 1 评论 -
Java第五次实验
-1-`import java.util.Scanner;public class Test1 { public static String prefix(String s1,String s2){ int i=0,j=-1; for (i=0;i<s1.length();i++){ if (s1.charAt(i)==s2.charAt(i)) { co...原创 2019-11-26 23:15:37 · 166 阅读 · 0 评论 -
[Java]方法参数是基本数据类型和引用数据类型
方法参数是引用数据类型时示例1package Demo;public class Person { String name;}package Demo;public class Test_1 { public static void main (String[] args){ /*main方法压栈运行*/ Person p = new Person(); /*定...原创 2019-09-19 22:51:27 · 492 阅读 · 0 评论 -
【面向对象的三大特征】
【面向对象的三大特征】面向对象的三大特征有:封装,多态和继承。我们先来了解一下这几个特征—封装:是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性及行为,这个公布是可以有选择的公布给其他的对象,其他对象值能访问到公布的属性及行为。(在Java中可以使用private,protect和public三种修饰符对外部对象访问该对象的属性和行为进行限制)。通俗一点来讲,就是将数...原创 2019-08-10 22:18:22 · 154 阅读 · 0 评论 -
[Java]一维二维数组的理解,定义与调用
一维数组1.定义(类型名[] 数组名 = new 类型名[数组长度])public class Hee { public static void main(String[] args){ int[] arr = new int[5];//这里定义了一个长度为5的一维数组 }}2.调用(数组名[索引])import java.util.Scanner;public class...原创 2019-08-04 20:49:35 · 509 阅读 · 1 评论