基础知识笔记
python中索引和值的同时获取:
不用单独用 range(len(citations)) 获取索引,再通过 citations[i] 获取值。应该是for i, citation in enumerate(citations)
python中数组按引用次数降序排序
citations.sort(reverse=True)
Java中:
使用 int length=nums.length;获取数组长度时,确保数组不为空,否则报错。如果为空可以用nums.size()
List nums = new ArrayList<>();
Map<Integer, Integer> valToIndex= new HashMap<>();
map中是否包含某个key valToIndex.containsKey(key);
map添加值用put valToIndex.put(key, value);
数组添加值用add,添加到末尾 nums.add(value);
获取要删除元素的索引
map获取value用get
int value = valToIndex.get(key);
数组获取value也用get
int value = nums.get(index);
数组修改某个值用set
nums.set(index,value);
map修改用put
valToIndex.put(key, value);
删除数组最后一个元素
nums.remove(index);数组删除用remove
从哈希表中删除该值
valToIndex.remove(key);map删除用remove
数组 map
add put
remove remove
set put
get get
AI生成项目
Java中StringBuilder(线程不安全但性能更高)和StringBuffer(线程安全但性能较低)用法
都提供以下方法:
append():向末尾追加字符串。
insert():在指定位置插入字符串。
replace():替换字符串中的部分内容。
delete():删除字符串中的部分内容。
reverse():将字符串倒置。
capacity():获取当前容量。
ensureCapacity():确保容量至少为某个值。
length():获取字符串的长度。
在 Java 中,字符串的长度 可以通过调用 String 类的 length() 方法来获取。python中len(string)
在 Java 中,数组的长度 可以通过直接访问数组的 length 属性来获取。python中len(arr)
在java中,s = s.trim(),去掉字符串首尾空格 。Python中s=s.strip()
Python中,判断字符串是否以什么什么开头 :string.startswith(prefix)
Python字符串中通过索引获取值:

python中字符串反转:filter_chars==filter_chars[::-1]
Python中将字符串转换成列表: words=s.strip().split(),按空格分割,空格数量不限,words.reverse()反转列表 ," ".join(words)用空格重新拼接单词。
Python中:s1.find(s2),s2字符串包含于s1字符串,返回的是s1中第一次出现s2的下标。find 方法 可以直接用于查找子字符串的第一个匹配项。如果找不到,返回 -1。
Python中filter_chars=‘’.join(char.lower() for char in s if char.isalnum()),char.isalnum()判断字符是否是字母或者数字,char.lower()变成小写字母,‘’.join将列表生成式转换成字符串
Python中items() 是字典的方法,它返回一个 包含键值对的迭代器。每个键值对是一个元组 (key, value),其中 key 是字典的键,value 是字典的值。例如,假设 ransomNoteCount 是这样的字典:{‘a’: 2, ‘b’: 1} ,调用 ransomNoteCount.items() 会返回:[(‘a’, 2), (‘b’, 1)] 。
python字典如何判断某个键不存在:
value = my_dict.get(key)
if value is not None: 则存在这个键
或者 if key in dic_:
假设 ransomNoteCount 是这样的字典:{‘a’: 2, ‘b’: 1},调用 ransomNoteCount.items() 会返回:[(‘a’, 2), (‘b’, 1)]。(Counter(ransomNote) 和 Counter(magazine) 会分别生成两个字典,其中键是字符,值是字符出现的次数。ransomNoteCount 是一个 Counter 对象,它本质上是一个字典,存储了 ransomNote 中每个字符的出现次数。)
Python:查找字典中的值 :dic[key]=value,中括号。
zip(s, t):zip() 函数将两个可迭代对象(在这里是字符串 s 和 t)按对应位置打包成元组。每个元组包含 s 和 t 中相同位置的元素。比如,如果 s = “egg” 和 t = “add”,那么 zip(s, t) 会生成如下元组:[(‘e’, ‘a’), (‘g’, ‘d’), (‘g’, ‘d’)]
for value in dic.values() 遍历字典的值

python处理数组,可按栈处理。数组=栈:[],删除用pop
while val in nums:
nums.pop(nums.index(val))
return len(nums)
AI生成项目python
Python的数据类型:数字(整型、浮点型、复数型)、字符串、列表[1, 2, 3, 4]、元组(不能修改,不能删除)Tuple = (“a”,“b”,“c”,“d”)、集合Set(无序且不重复){1,2,3,4}、字典dict = {“name”:“yqq”, “age”:27}
集合:
my_set = set([1, 2, 2, 3, 4])
print(my_set) # 输出:{1, 2, 3, 4}
list(dic.values()),把字典的值组成一个列表 。
return[num1,num2] 返回列表
列表:append remove
list.append(obj)
列表的末尾添加新的对象
list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值
list.insert(index,obj)
函数用于将指定对象插入列表的指定位置。
list.pop()
函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
集合(set)add remove
栈:使用python中的列表[],stack.append()入栈,stack.pop()弹出栈顶元素,stack.top()查看栈顶元素
链表:判断链表是否存在循环,定义快慢指针,若快慢指针相遇,说明存在环。fast=fast.next.next,slow=slow.next
二
队列:入队(append),出队(popleft() )
二叉搜索树的中序遍历是递增的
min_diff = float(‘inf’) 这行代码的作用是初始化一个变量 min_diff,并将其设置为正无穷大。
def addBinary(a, b):
将二进制字符串转换为整数
sum_result = int(a, 2) + int(b, 2)
将结果转换为二进制字符串,并去掉前缀 ‘0b’
return bin(sum_result)[2:]
Zfill()是 Python 字符串方法,用于将字符串填充为指定的长度。如果原字符串的长度不足指定长度,它会在字符串的左侧填充零(‘0’)。
异或运算(XOR):^
^ 运算符对两个整数的二进制位执行逻辑异或运算。如果对应的二进制位相同,结果为 0;如果不同,结果为 1。a = 5 ,二进制:101,
b = 3 ,二进制:011 result = a ^ b ,结果:110
异或运算非常有用的特性是:
a ^ a = 0:任何数和自己异或结果为 0。
a ^ 0 = a:任何数和 0 异或结果是它本身。
异或操作是可逆的,即:a ^ b = c 时,可以通过 c ^ b = a 来恢复原始的 a。
异或操作的一个重要特性就是如果对数组中的所有数字进行异或,重复出现的数字会相互抵消,最后剩下的就是那个只出现一次的数字。
整除操作:// 例:7//3=2(向下取整)
Kadane 算法是一个经典的动态规划算法,用于求解 最大子数组和 问题。Kadane 算法的核心思想是维护两个变量:
当前子数组和:记录当前子数组的和。如果当前子数组和小于 0,则丢弃当前子数组,重新开始计算。
最大子数组和:记录遇到的最大子数组和。
链表:获取链表当前节点的值current.value,获取下一个节点current = current.next。
链表创建节点:ListNode(num).获取数组中的值arr[0]
列表加法:
list1 = [1, 2, 3] list2 = [4, 5, 6] result = list1 + list2 print(result) # 输出 [1, 2, 3, 4, 5, 6]
在 Python 中,del 是一个关键字,用来删除对象、变量或容器(如列表、字典、集合)中的元素。
具体来说,del self.cache[tail_node.key] 这一行代码的含义是 删除字典 self.cache 中键为 tail_node.key 的元素。
哈希表中获取值value = self.cache[key]。cache是个哈希表{}
树中,根据值找节点:例如root = TreeNode(root_val)。
前序遍历中,根据索引找值:例如 root_val=preorder[pre_start]
Str in word_set判断某个字符串,是否在某个字符串集合中[“leet”,“code”]
zip(s, t):zip() 函数将两个可迭代对象(在这里是字符串 s 和 t)按对应位置打包成元组。
每个元组包含 s 和 t 中相同位置的元素。比如,如果 s = “egg” 和 t = “add”,那么 zip(s, t) 会生成如下元组:[(‘e’, ‘a’), (‘g’, ‘d’), (‘g’, ‘d’)]
