刷题日记-数组
研究一下算法题里面数组常见的一些题出法和思路
参考链接:代码随想录 (programmercarl.com)
双指针删除元素对应题目:27. 移除元素 - 力扣(Leetcode)
快指针 !=目标值 快慢同步运动
快指针 =目标值 出现步幅差1234567891011121314151617public int removeElement(int[] nums, int val) { // 快慢指针 int slowIndex = 0; // 快指针遍历 for (int fastIndex = 0; fastIndex < nums.length; fastIndex++) { //慢指针同步运动 if (nums[fastIndex] != val) { nums[slowIndex ] = nums[fastIndex]; slowIndex++; } } return slowIndex;}
有序数组平方对应题目:977. 有序数组的平方 - 力扣(Leetcod ...
算法基础结构
数组数组是“数”放在一组的结构,通过下标索引的方式获取到下标下对应的数据
相同类型数据
程序中,数组下标都是从0开始的
总体数目=下表最大值 + 1
数组遍历最大位置 = 方法得到的数组个数 - 1
一维数组数组内存空间的地址是连续的,删除特定位置的后面需要前移
二维数组二维数组定义结构如下
JAVA中输出二维数组地址:
1234567public static void test_arr() { int[][] arr = {{1, 2, 3}, {3, 4, 5}, {6, 7, 8}, {9,9,9}}; System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); System.out.println(arr[3]);}
得到
1234[I@7852e922[I@4e25154f[I@70dea4e[I@5c64 ...
刷题日记-JAVA
一些面试中和实际用到的 Java 底层 知识点.
基础知识== 和 equals 区别
首先的区别是,equals 是方法,而 == 是操作符;
这意味着:对于基本类型的变量来说(如 short、 int、 long、 float、 double),只能使用 == ,因为这些基本类型的变量没有 equals 方法。对于基本类型变量的比较,使用 == 比较, 一般比较的是它们的值。
对于引用类型的变量来说(例如 String 类)才有 equals 方法,因为 String 继承了 Object 类, equals 是 Object 类的通用方法。
equals在object类源码: 说明里面使用的就是 == 比较,所以这种情况下比较的就是它们在内存中的存放地址
123public boolean equals(Object obj) { return (this == obj); }
对于 equals 方法被重写的情况。以 String 类为例,以下是 String 类中的 equals 方法:
12345678910111213141516171819 ...
刷题日记-SQL
美团面试和MySQL相关的部分问到了SQL语句的写法,统一研究下。
参考链接:SQL是什么 (biancheng.net)
基础SQL结构一个基础的SQL语句结构是
1234567SELECT select_list[INTO new_table]FROM table_name[WHERE search_condition][GROUP BY group_by_expression][HAVING search_condition][ORDER BY order_expression[ASC|DESC]]
必需的子句只有SELECT子句和FROM子句,其他的子句都是可选的。各子句具体含义如下:
SELECT子句:指定由查询返回的列。
INTO子句:将检索结果存储到新表或视图中。
FROM子句:用于指定引用的列所在的表或视图。如果对象不止一个,那么它们之间必须用逗号分开。
WHERE子句:指定用于限制返回的行的搜索条件。如果SELECT语句没有WHERE子句,DBMS假设目标表中的所有行都满足搜索条件。
GROUP BY子句:指定用来放置输出行的组,并且如果SELECT子句< ...
刷题日记-ACM模式
leetcode用的属于核心代码模式,面试的时候有时候需要手撕代码,算法题需要用到一种ACM模式。想不到该怎么写还是相当尴尬的。整理一下ACM模式。
ACM模式开头1234567import java.util.*;public class Main { public static void main (String[] args){ Scanner in = new Scanner(System.in); //...... }}
这部分基本上是通用的部分import java.util.*:是导入util库中所有类,后面用到的Scanner包括在里面
1234public class Main { public static void main (String[] args){ }}
是Main主类类下的主函数,main函数的特定写法是
1public static void main (String[] args)//`简写为(PSVM)
ScannerScanner的使用需要实例化
1Scanne ...