今天做的算法题……感觉就像脑筋急转弯,真的让我是一阵凌乱,我还在想,特么的简单题都不会了?
第1题:
leetcode的Nim游戏。
懵逼之处:最优解,题目说是两个人都很聪明,每次都会下出最优解。啥是最优解啊到底……
我开始画图,画了半天一直想用动态规划,感觉走火入魔了。倒是摸到一点感觉,就是最后剩下4的时候,轮到对方出手,那我一定赢。但怎么写……
受不鸟……看答案。MD,原来就是剩下4个,只要不轮到我,也就是说,只要总数不是4的倍数,我就能赢……
函数简单到出乎意料……
class Solution:
def canWinNim(self, n: int) -> bool:
return not (n%4==0)
第2题:删除链表中的节点
给定一个链表,要求写一个函数,函数输入的唯一参数是一个节点,要删除该节点。
一脸懵逼之处是:链表无法访问上一个节点,那我要怎么删除当前节点啊……
一看答案,原来不需要节点地址不变,只要节点中的值被删了就行。那这……写起来还真的是简单
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def deleteNode(self, node):
"""
:type node: ListNode
:rtype: void Do not return anything, modify node in-place instead.
"""
node.val = node.next.val
node.next = node.next.next