算法:像脑筋急转弯一样

今天做的算法题……感觉就像脑筋急转弯,真的让我是一阵凌乱,我还在想,特么的简单题都不会了?
第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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值