Should i specify that i know, some part of my solution is not the best? By doing this, i just show, i am aware of my solution's defect, but it might reduces my chance to get hired.
I think it would increase your chances with any reasonable interviewer. If I were deciding between two candidates, both of whom had sub-optimal solutions, but one who attached a note similar to the following:
c, my initial approach was going to be to implement a quicksort based solution, but I'm afraid I was unable to get this working in the time available. I therefore used a bubblesort instead, and while that was trivial to complete I'm aware it's not up to par from an efficiency perspective.
...then I'd be much more impressed with the solution with that note attached. It doesn't just show an awareness that the code is sub-optimal, though that's of course a positive. It signals to me as an interviewer that the candidate would ordinarily have put in the time and effort to come up with the best solution, even if that involved asking for help, taking a bit more time, doing more research etc. - and that's incredibly valuable.
(Note of course entirely fictional - it could mention code quality rather than efficiency for instance.)