وبلاگ شخصی فرشاد دهقانی

نسخه ای از همه ی کارها و فعالیت هایی که انجام میدم رو این جا میذارم

نسخه ای از همه ی کارها و فعالیت هایی که انجام میدم رو این جا میذارم

چیزای مختلفی مثل مقالات، بخش های مورد علاقه کتاب ها، سایت های مفید، آموزش، ترجمه هایی که انجام دادم، کد های برنامه نویسی، راه حل های مسائل برنامه نویسی و ایده هامو اینجا میذارم. لطفاً نظرات خوددتون رو زیر هر پست برام بنویسید

Sherlock and Array

شنبه, ۱۶ اسفند ۱۳۹۳، ۰۵:۲۶ ب.ظ

صورت مسأله: غضنفر آرایه ای به قلندر می دهد و از او می خواهد مشخص کند که آیا عددی در آن وجود دارد که مجموع اعداد سمت چپ و راست آن برابر باشد یا خیر...

*مثال:

عدد اول تعداد آرایه ها، عدد دوم طول هر آرایه و عدد سوم خود آرایه است. خروجی برای هر آرایه بله (چنین عددی وجود دارد) یا خیر (... وجود ندارد) است.

*ورودی:

۲

۴

۳۱۳۴

۸

۱۷۲۳۹۸۵۹

 *خروجی:

بله

خیر


T = input()
answers = []
for i in range(T) :
    N = input()
    A = [int(x) for x in raw_input().split()]
    count = 0
    for array in A :
        if count != 0 and count != (len(A) - 1) and sum(A[:count]) == sum(A[count+1:]) :
            answers.append("YES")
            break
        elif len(A) == 1 :
            answers.append("YES")
            break
        elif count == len(A) - 1 :
            answers.append("NO")
        count += 1
for answer in answers :
    print answer

دقت کنید time complexity راه حل بالا (O(N*M هست در صورتی که میشه با الگوریتم سریعتری هم حلش کرد

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی