leecode-21-合并两个有序链表
leecode-21. 合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
1234示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4
解法一:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#!/usr/bin/env python# -*- coding: utf-8 -*-# author:sarizzm time:2020/12/24 0024# Definition for singly-linked list.class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = nextclass Solution: def mergeTwoLists( ...
leecode-21-合并两个有序链表
leecode-26. 删除排序数组中的重复项给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
示例 1:
12345给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。
示例 2:
12345给定 nums = [0,0,1,1,1,2,2,3,3,4], 函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。 你不需要考虑数组中超出新长度后面的元素。
说明:
为什么返回数值是整数,但输出的答案是数组呢?
请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。
你可以想象内部操作如下:
12345678// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len = removeDuplicates ...
leecode-80-删除排序数组中的重复项 I
leecode-80. 删除排序数组中的重复项 II给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
示例 1:
123输入:nums = [1,1,1,2,2,3]输出:5, nums = [1,1,2,2,3]解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。 你不需要考虑数组中超出新长度后面的元素。
示例 2:
123输入:nums = [0,0,1,1,1,1,2,3,3]输出:7, nums = [0,0,1,1,2,3,3]解释:函数应返回新长度 length = 7, 并且原数组的前五个元素被修改为 0, 0, 1, 1, 2, 3, 3 。 你不需要考虑数组中超出新长度后面的元素。
说明:
为什么返回数值是整数,但输出的答案是数组呢?
请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。
你可以 ...
leecode-14 最长公共前缀
leecode-14-最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串""。
123456789示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。
说明: 所有输入只包含小写字母 a-z 。
123456789101112131415161718192021#!/usr/bin/env python# -*- coding: utf-8 -*-# author:sarizzm time:2020/12/21 0021class Solution: def longestCommonPrefix(self, strs): strls = '' for le in zip(*strs): if len(set(le)) == 1: strls += le[0] else: ...
leecode-13 罗马数字转整数
leecode-13罗马数字转整数罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。
12345678字符 数值I 1V 5X 10L 50C 100D 500M 1000
例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。
通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:
bI 可以放在V (5)和X (10) 的左边,来表示 4和 9。
X 可以放在L (50) 和 C (100) 的左边,来表示 40 和 90。
C 可以放在 `D (500) 和 M (1000) ...
java-3-面向对象-类-属性-构造器-this-UML图
[TOC]
java 面向对象类(Class)和对象(Object)是面向对象的核心概念。
类是对一类事物的描述,是抽象的、概念上的定义
对象是实际存在的该类事物的每个个体,因而也称为实例(instance)。
“万事万物皆对象
面向对象程序设计的重点是类的设计,类的设计, 其实就是类的成员的设计
创建Java自定义类
定义类(考虑修饰符、类名)
编写类的属性(考虑修饰符、属性类型、属性名、 初始化值)
编写类的方法(考虑修饰符、返回值类型、方法名、形参等)
123456789public class Animal {public int legs;public void eat(){System.out.println(“Eating.”);}public viod move(){System.out.println(“Move.”); }}
对象的创建和使用
创建对象语法: 类名 对象名 = new 类名();
使用“对象名.对象成员”的方式访问对象成员(包括属性和方法)
12345678910public class Zoo{public static void ...
java-2-运算符-流程控制-数组
[TOC]
运算符算术运算符
运算符
运算
范例
结果
+
正号
+3
3
-
负号
b=4; -b
-4
+
加
5+5
10
-
减
6-4
2
*
乘
3*4
12
/
除
5/5
1
%
取模(取余)
7%5
2
++ ++
自增(前):先运算后取值 ;自增(后):先取值后运算
a=2;b=++a; a=2;b=a++;
a=3;b=3 a=3;b=2
- -
自减(前):先运算后取值 自减(后):先取值后运算
a=2;b=- -a a=2;b=a- -
a=1;b=1 a=1;b=2
+
字符串连接
“He”+”llo”
“Hello”
算术运算符的注意问题
如果对负数取模,可以把模数负号忽略不记,如: 5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果==不一定总是整数==。
对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例如:int x=3510;x=x/1000*1000; x的结果是? 3000
“+”除字符串相加功能外,还能把非字符串转换成字符 ...
java-1-语言特点-注释-标识符-进制
[TOC]
Java语言的特点
面向对象性:两个要素:类、对象三个特征:封装、继承、多态健壮性:① 去除了C语言中的指针 ②自动的垃圾回收机制 —>仍然会出现内存溢出、内存泄漏跨平台型:write once,run anywhere:一次编译,到处运行功劳归功于:JVM
Java两种核心机制Java虚拟机 (Java Virtal Machine)1234- JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。- 对于不同的平台,有不同的虚拟机。- 只有某平台提供了对应的java虚拟机, java程序才可在此平台运行- Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”
垃圾收集机制 (Garbage Collection)不再使用的内存空间应回收—— 垃圾回收。
1234- 在C/C++等语言中,由程序员负责回收无用内存。- Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。- 垃圾回收在Java程序运行过程中自动 ...